set -e -o pipefail 是什么意思?

Dip*_*war 19 linux shell scripting shell-script

下面的命令是什么意思?我是 shell 脚本的新手。

set -e -o pipefail
Run Code Online (Sandbox Code Playgroud)

erw*_*win 22

如果任何命令或管道以非零状态退出,请立即结束脚本。

我通常不使用这两个标志,但是如果您刚刚开始编写 shell 脚本,这就像在其他语言中打开警告或严格模式一样。

-e

如果命令以非零状态退出,则立即退出。

-o <option-name>

设置<option-name>标志。在这种情况下,它设置pipefail选项。

pipefail

如果设置,则使管道返回最后一个(最右边)命令的退出状态,以非零状态退出。如果管道中的所有命令都成功退出,则返回零。默认情况下禁用此选项。

  • 而“-o”则保留为“--option-name”。 (4认同)