gpt4 book ai didi

linux - 如果命令失败如何退出?

转载 作者:IT老高 更新时间:2023-10-28 12:20:19 25 4
gpt4 key购买 nike

我是 shell 脚本的菜鸟。如果命令失败,我想打印一条消息并退出我的脚本。我试过了:

my_command && (echo 'my_command failed; exit)

但它不起作用。它继续执行脚本中此行之后的指令。我正在使用 Ubuntu 和 bash。

最佳答案

试试:

my_command || { echo 'my_command failed' ; exit 1; }

四个变化:

  • && 更改为 ||
  • 使用 { } 代替 ( )
  • exit
  • 之后引入 ;
  • { 之后和 }
  • 之前的空格

由于您只想在命令失败时打印消息并退出(以非零值退出),因此您需要 || 而不是 &&

cmd1 && cmd2

将在 cmd1 成功时运行 cmd2(退出值 0)。在哪里

cmd1 || cmd2

将在 cmd1 失败时运行 cmd2(退出值非零)。

使用 ( ) 使它们内部的命令在 sub-shell 中运行,并从中调用 exit那里会导致您退出子 shell 而不是原来的 shell,因此在原来的 shell 中继续执行。

要克服这个问题,请使用 { }

最后两项更改是 bash 要求的。

关于linux - 如果命令失败如何退出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3822621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com