0

我想做这个:

./first.sh
if [ $? -ne 0 ]; then
exit
fi
# pipe output of first.sh to second.sh

因此second.sh,除非成功,否则不应运行,first.sh但我真的不知道同时将输出first.sh传递到哪里。

4

2 回答 2

1

为什么不将其转储到文件中,然后将其写入second.shiffirst.sh成功?

./first.sh > /tmp/first.pid 
if [ $? -ne 0 ]; then
   exit
fi   
./second.sh < /tmp/first.pid

如果并发是一个问题,您可能希望使用 pid 或类似的文件来限定您的文件。

于 2012-12-10T16:20:57.530 回答
0

您可以设置bash选项pipefail以在管道中的命令失败时导致错误并报告退出:

set -e # Set exit on error
set -o pipefail # Set exit on error to work with pipes

信息来源

于 2012-12-10T16:26:08.233 回答