我正在编写一个小脚本,我必须检查特定进程是否正在运行?然后根据我必须采取行动.是的shell是bash.
要检查进程是否正在运行?从这我试过,
Process_Num='ps -ef | grep /opt/sro/bin/srocmsd | grep -v "grep" | wc -l'
if [ $Process_Num -eq 1 ]
then
***Do Stuff***
else
***Do Stuff***
fi
Run Code Online (Sandbox Code Playgroud)
但我得到错误:
**Error : line 191: [: too many arguments**
Run Code Online (Sandbox Code Playgroud)
在shell/terminal上直接运行相同的命令时,输出为1.
有语法错误吗?可以帮助吗?
要将命令执行的结果放在环境变量中,您应该将命令放在反引号(`)中或使用$(command)语法:
Process_Num=$(ps -ef | grep /opt/sro/bin/srocmsd | grep -v "grep" | wc -l)
Run Code Online (Sandbox Code Playgroud)