无法检查pkill命令是否成功

时间:2019-02-05 08:24:58

标签: bash

我的bash中有这种代码

pkill <stuff>
if [ $? -eq 0 ]; then
    echo OK
else
    echo FAIL
fi

但是它总是进入失败部分。 如何检查pkill命令是否成功?

1 个答案:

答案 0 :(得分:2)

如联机帮助页中所述,pkill具有不同的退出状态代码:

EXIT STATUS
   0      One or more processes matched the criteria.
   1      No processes matched.
   2      Syntax error in the command line.
   3      Fatal error: out of memory etc.

您的代码会分析退出代码(即$?代表什么),但是您不会检查自己是否有1、2或3 ...您也应该(!!!)对此进行检查:

#!/usr/bin/env bash

pkill <stuff>
pkillexitstatus=$?

if [ $pkillexitstatus -eq 0 ]; then
    echo "one or more processes matched the criteria"
elif [ $pkillexitstatus -eq 1]; then
    echo "no processes matched"
elif [ $pkillexitstatus -eq 2]; then
    echo "syntax error in the command line"
elif [ $pkillexitstatus -eq 3]; then
    echo "fatal error"
else
    echo UNEXPECTED
fi
相关问题