如果命令失败,如何从 Linux 终端退出?

我们编写的某些命令可能由于某种原因而失败,这是一种常见的情况。原因可能有很多,可能是因为核心实用程序的 GNU 和 BSD 版本之间的差异,或者仅仅是因为存在逻辑错误。在这种情况下,如果我们想终止进程而不必使用CTRL + C的显式技术,那么我们有几个不同的选择。

使用带有 || 的 bash 退出命令

假设我们有一个特定的命令my_command在 Ubuntu 上完美运行,但在 Mac OS X 上运行,并且您想确保如果它由于某些特定原因失败,那么应该终止进程并且终端应该退出。

在这种情况下,我们可以使用下面显示的命令。

命令

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 脚本之上将导致脚本退出。