我想做这个:
./first.sh
if [ $? -ne 0 ]; then
exit
fi
# pipe output of first.sh to second.sh
因此second.sh
,除非成功,否则不应运行,first.sh
但我真的不知道同时将输出first.sh
传递到哪里。
为什么不将其转储到文件中,然后将其写入second.sh
iffirst.sh
成功?
./first.sh > /tmp/first.pid
if [ $? -ne 0 ]; then
exit
fi
./second.sh < /tmp/first.pid
如果并发是一个问题,您可能希望使用 pid 或类似的文件来限定您的文件。
您可以设置bash
选项pipefail
以在管道中的命令失败时导致错误并报告退出:
set -e # Set exit on error
set -o pipefail # Set exit on error to work with pipes
信息来源。