she -e 如何与 & 交互?

she -e 如何与 & 交互?

我在 Ubuntu(清晰)上使用sh( dash) ,并且联机帮助页有这样的说明-e

           -e errexit 如果不是交互式的,如果任何未经测试的命令失败,则立即退出。
                            命令的退出状态被认为是显式测试的
                            if 命令用于控制 if、elif、while 或 Until;或者
                            如果命令是“&&”或“||”的左侧操作数歌剧-
                            托尔。

当后台命令失败时会发生什么?bash在这方面表现是否有所不同?

答案1

测试这个非常简单。和-e

% bash -e -c 'false & echo waiting; if wait $!; then echo success; else echo failure; fi'
waiting
failure

因此,如果后台命令失败,shell 将不会自动退出(-e这还不够)。

如果您wait在显式测试之外,wait将返回失败的后台进程的返回代码。在这种情况下,如果-e指定,shell 将退出:

% bash -e -c 'false & echo waiting; wait $!; echo returned'   
waiting

bash与或相同的结果shzsh

相关内容