我做了一个简单的脚本:
$ more test.bash
#!/bin/bash
echo test
exit 1
当我运行脚本时,退出状态应该是1
$ /tmp/test.bash
echo $?
1
但是当我按以下方式运行时
/tmp/test.bash | tr -d '\r' 1>>$LOG 2>>$LOG
echo $?
0
退出状态是0,(不符合预期1)
看来退出状态来自tr命令。
但我想要的是从脚本 test.bash 中获取退出状态。
我需要在语法中添加/更改什么才能从脚本而不是从管道之后的命令获得正确的退出状态?
Use the PIPESTATUS
array:
$ ls foo | cat
ls: foo: No such file or directory
$ echo ${PIPESTATUS[0]} ${PIPESTATUS[1]}
2 0
Note: PIPESTATUS
是一种 bashism(即不是 POSIX)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)