[英]Stop bash on error same as “set -e” in script file
我有一个外部命令来生成一些bash命令,我们将其gen_commands
,它会生成一个需要使用bash
运行的命令列表,但是如果任何命令失败,则需要停止并退出。 为了在错误时停止它,我将gen_commands
的结果gen_commands
临时脚本文件中,在开始时附加set -e
:
echo "#!/bin/bash" > tmp.sh
echo "set -e" >> tmp.sh
gen_commands >> tmp.sh
chmod +x tmp.sh
./tmp.sh
rm tmp.sh
如果我可以一行运行,它将看起来更加干净:
gen_commands | bash
但是在那种情况下, bash
忽略错误。 是否有可能将bash配置为在失败时失败而无需编写脚本文件。
您可以使用命令组将多个命令的输出组合到一个流中:
{ echo "set -e"; gen_commands; } | bash
但是,您也可以简单地通过-e
作为bash
的选项:
gen_commands | bash -e
从手册页:
OPTIONS
set内置命令的描述中记录的所有单字符外壳程序选项都可以在调用外壳程序时用作选项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.