gpt4 book ai didi

linux - Bash 评估 : [ vs ||

转载 作者:太空狗 更新时间:2023-10-29 11:44:49 26 4
gpt4 key购买 nike

我有一个 pid 存储在一个文件中:

echo 394 > pid_stored

我正在检查 pid 是否正在运行:

kill -0 $(cat pid_stored) 2> /dev/null || echo "PID not running"

这就像一个魅力,但如果我想在 true 或 false 情况下执行多个操作,我想我需要一个 if then fi 结构。但出于某种原因,我无法弄清楚 [ 或 [[ 不以相同的方式评估:

if [[ $(kill -0 $(cat pid_stored) 2> /dev/null) ]]
then echo "PID IS NOT RUNNING"
fi

不起作用,它始终评估为 true。错误流通过 2> 定向到/dev/null,因为如果 pid 存在或失败,kill -0 评估为真

谢谢!

最佳答案

删除 [[ and ]]因为它用于评估表达式:

if kill -0 $(<pid_stored) 2> /dev/null
then
echo "PID IS RUNNING"
else
echo "PID IS NOT RUNNING"
fi

PS:你可以避开cat还有 $(<pid_stored)

要否定你可以使用:

if ! kill -0 $(<pid_stored) 2> /dev/null

关于linux - Bash 评估 : [ vs ||,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22871651/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com