我正在尝试创建一个执行多个命令的shell脚本(例如test.sh),并将每个命令的stdout和stderr重定向到特定的日志文件。
但是,如果命令失败,则将stderr写入日志文件后,我想中止,而不是继续执行其余命令。
下面的工作,还是我需要做一些不同的事情?
command1 > log1.txt 2>&1
command2 > log2.txt 2>&1
command3 > log3.txt 2>&1
答案 0 :(得分:0)
确保每个命令在失败时都返回错误代码(即非零),然后可以使用该代码来保全包含的脚本,例如:
if command1 > log1.txt 2>&1; then
if command2 > log2.txt 2>&1; then
command3 > log3.txt 2>&1
fi
fi
或更简洁:
command1 > log1.txt 2>&1 &&
command2 > log2.txt 2>&1 &&
command3 > log3.txt 2>&1