如果命令失败,如何从 Linux 终端退出?
我们编写的某些命令可能由于某种原因而失败,这是一种常见的情况。原因可能有很多,可能是因为核心实用程序的GNU和BSD版本之间的差异,或者仅仅是因为存在逻辑错误。在这种情况下,如果我们想终止进程而不必使用CTRL+C的显式技术,那么我们有几个不同的选择。
使用带有||的bash退出命令
假设我们有一个特定的命令my_command在Ubuntu上完美运行,但在MacOSX上运行,并且您想确保如果它由于某些特定原因失败,那么应该终止进程并且终端应该退出。
在这种情况下,我们可以使用下面显示的命令。
命令
my_command || { echo 'my_command isn't working!' ; exit 1; }
当且仅当命令不起作用时,此命令将确保终端退出。
使用$
另一个可以使用的命令如下所示。
命令
my_command if [ $? -eq 0 ] then echo "it works perfectly" else echo "it isn't working" fi
在上面的命令中,我们利用了这样一个事实:如果命令返回一个非零退出代码,那么我们回显它,然后我们可以从终端退出。
使用set-e
如果您使用bash脚本运行命令,则可以在脚本顶部插入以下命令。
命令
set -e
如果任何命令返回非零退出代码,将上述命令放在bash脚本之上将导致脚本退出。