Linux终端二要检查的条件

时间:2018-01-22 13:41:18

标签: linux bash

我需要检查节点是否正在运行以及文件/root/app/application.js是否存在并在终端中返回相应的消息...

为了检查节点是否正在运行,我这样做是有效的:

if [ $(pgrep node | wc -l) -eq 0 ]; then echo "node is not running..."; else echo "node is running"; fi

现在我需要添加到这个以检查文件是否存在/root/app/application.js所以我发现这个命令是我需要的:

if [ ! -f /root/app/application.js ]; then
    echo "File not found!"
fi

我尝试使用以下代码将这两个命令合并为一个:

if [ $(pgrep node | wc -l) -eq 0 || ! -f /root/app/application.js]; then echo "node is not running..."; else echo "node is running"; fi

但我收到错误-bash: [: missing]'`

那么如何组合两个命令来检查节点是否正在运行以及文件是否存在于一个命令中?

1 个答案:

答案 0 :(得分:1)

if [ $(pgrep node | wc -l) -eq 0 -o ! -f /root/app/application.js ]; then echo "node is not running..."; else echo "node is running"; fi

如果你需要逻辑"或"在bash中,您必须使用-o密钥。 (另外,-a键如果您需要逻辑"和")