Bash can';t检查pkill命令是否成功
我的bash中有这种代码Bash can';t检查pkill命令是否成功,bash,Bash,我的bash中有这种代码 pkill <stuff> if [ $? -eq 0 ]; then echo OK else echo FAIL fi pkill 如果[$?-等式0];然后 回声OK 其他的 回音失败 fi 但它总是进入失败的部分。 如何检查pkill命令是否成功 如手册页中所述,PKIL具有不同的退出状态代码: EXIT STATUS 0 One or more processes matched the criteria.
pkill <stuff>
if [ $? -eq 0 ]; then
echo OK
else
echo FAIL
fi
pkill
如果[$?-等式0];然后
回声OK
其他的
回音失败
fi
但它总是进入失败的部分。
如何检查pkill命令是否成功 如手册页中所述,PKIL具有不同的退出状态代码:
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
#/usr/bin/env bash
普基尔
pkillexitstatus=$?
如果[$pkillexitstatus-等式0];然后
echo“一个或多个流程符合标准”
elif[$pkillexitstatus-等式1];然后
echo“没有匹配的进程”
elif[$pkillexitstatus-等式2];然后
echo“命令行中的语法错误”
elif[$pkillexitstatus-等式3];然后
回显“致命错误”
其他的
呼应意外
fi
如手册页中所述,PKI将具有不同的退出状态代码:
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
#/usr/bin/env bash
普基尔
pkillexitstatus=$?
如果[$pkillexitstatus-等式0];然后
echo“一个或多个流程符合标准”
elif[$pkillexitstatus-等式1];然后
echo“没有匹配的进程”
elif[$pkillexitstatus-等式2];然后
echo“命令行中的语法错误”
elif[$pkillexitstatus-等式3];然后
回显“致命错误”
其他的
呼应意外
fi
Hint:lookupman-pkill
在EXIT STATUS
部分下,您确定即使pkill成功也进入失败分支吗?看起来您的pkill命令总是失败,而且if
执行的正是它应该执行的操作。提示:在退出状态
部分下查找man pkill
,您确定即使pkill成功也输入失败分支吗?看起来您的pkill命令一直都失败,而if
恰好完成了它应该做的事情。我不知道这是如何回答这个问题的。所有与0不同的退出代码都是错误,因此OPs脚本似乎正常。退出状态1不一定是错误。由于@Lanodisoft没有提供任何进一步的信息,除了他自己,没有人可以帮助他:-)我的回答应该帮助他,更好地理解PKIL如何与其调用方/他的bash脚本通信,以便他能够找出它为什么不能按他所期望的那样工作。我不知道这是如何回答这个问题的。所有与0不同的退出代码都是错误,因此OPs脚本似乎正常。退出状态1不一定是错误。由于@Lanodisoft没有提供任何进一步的信息,除了他自己,没有人能帮助他:-)我的回答应该能帮助他更好地理解pkill是如何与调用方/他的bash脚本通信的,这样他就可以弄清楚为什么它不能按他所期望的那样工作。