我的 bash 中有这样的代码
pkill <stuff>
if [ $? -eq 0 ]; then
echo OK
else
echo FAIL
fi
但它总是进入失败部分。 如何检查pkill命令是否成功?
最佳答案
正如手册页中所写,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
关于bash - 无法检查 pkill 命令是否成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54530278/