我想将两个不同的脚本文件合并到一个脚本文件中,该文件可以执行两个不同文件的操作。脚本文件是:
脚本文件A:
pid=`ps -ef | grep temp_tool | grep -v grep | awk '{print $2}'`
kill -9 ${pid}
脚本文件B:
nohup ./temp_tool &
合并的脚本文件:
pid=`ps -ef | grep temp_tool | grep -v grep | awk '{print $2}'`
kill -9 ${pid}
nohup ./temp_tool &
执行kill
命令后,整个合并的脚本文件将停止,我必须将其修改为:
pid=`ps -ef | grep temp_tool | grep -v grep | awk '{print $2}'`
out=`kill -9 ${pid}`
nohup ./temp_tool &
现在效果很好,但我不知道为什么?有什么不同吗?
答案 0 :(得分:2)
我会说$pid
也包含你脚本的pid。你可以过滤掉它:
script_pid=$$
pid=$(ps -ef | grep temp_tool | grep -Ev "grep|$script_pid" | awk '{print $2}')
虽然如果你想要命令temp_tool
的pid,我会建议:
ps -C temp_tool -o pid
而不是ps -ef | grep ...