【发布时间】:2014-04-04 19:37:24
【问题描述】:
我有一个 pid 存储在一个文件中:
echo 394 > pid_stored
我正在检查一个 pid 是否正在运行:
kill -0 $(cat pid_stored) 2> /dev/null || echo "PID not running"
这就像一个魅力,但如果我想在真假情况下执行多个操作,我想我需要一个 if then fi 结构。但由于某种原因,我无法弄清楚 [ 或 [[ 不要以同样的方式评估:
if [[ $(kill -0 $(cat pid_stored) 2> /dev/null) ]]
then echo "PID IS NOT RUNNING"
fi
不起作用,它总是评估为真。错误流使用 2> 定向到 /dev/null,因为如果 pid 存在或失败,kill -0 评估为真
谢谢!
【问题讨论】:
标签: linux bash shell unix scripting