我正在尝试检测进程 ( goland.sh
) 是否正在运行。我用这个:
#!/bin/bash
if pgrep "goland.sh" >/dev/null 2>&1 ; then
echo "running"
exit 1
fi
echo "not running"
这有效,但我不明白两件事:
- 为什么如果我使用
if [[ pgrep "goland.sh" >/dev/null 2>&1 ]] ; then
它不起作用(即使进程没有运行,它也总是打印“正在运行”) - 为什么如果我使用
if [ pgrep "goland.sh" >/dev/null 2>&1 ] ; then
它不起作用(即使进程没有运行,它也总是打印“正在运行”)
我怀疑 1 与如何>
解析有关,但我对 2 完全一无所知。