如果我只是在命令提示符下键入:if [ ! "$(pgrep vlc)" ]; then echo not running; else echo running; fi
,这总是有效的,但是一旦我把它作为脚本,给它chmod + x并运行它我总是以“运行”作为输出。有人可以给我带头吗?
#!/bin/bash
export DISPLAY=:0
if [ ! "$(pgrep vlc)" ]; then echo not running; else echo running; fi
答案 0 :(得分:2)
如果您的脚本名称包含'vlc',则pgrep会发现该脚本正在运行且if条件为false,即使真正的VLC未运行。
答案 1 :(得分:1)
您可以插入
echo "$(pgrep vlc)"
在if
stament之前
答案 2 :(得分:1)
您可以更有选择性地使用pgrep
命令。没有必要使用命令替换和括号。
#!/bin/bash
export DISPLAY=:0
if ! pgrep -f "/path/to/vlc " >/dev/null; then echo not running; else echo running; fi
答案 3 :(得分:0)
if ps -C vlc > /dev/null ; then echo running; else echo not runing; fi