我的脚本正在处理这个:
if pgrep -f "/home/tiger/bin/pymp" >/dev/null 2>&1 ; then
我希望它也检查 mpv2。
这是我到目前为止所拥有的:
if [[ /usr/bin/pgrep -f "/home/tiger/bin/pymp" ]] || [[ /usr/bin/pgrep -f "/usr/bin/mpv2" ]] >/dev/null 2>&1; then
这些是我看到的错误:
/home/tiger/bin/pauseMusic.sh:第 3 行:需要条件二元运算符 /home/tiger/bin/pauseMusic.sh:第 3 行:-f' /home/tiger/bin/pauseMusic.sh: line 3:
if [[ /usr/bin/pgrep -f "/home/附近的语法错误老虎/bin/pymp"]] || [[ /usr/bin/pgrep -f "/usr/bin/mpv2" ]] >/dev/null 2>&1;然后'
答案1
[[
和运算符]]
用于明确的比较测试。如果你想检查两个命令结果,只需使用shell:
$ if /usr/bin/pgrep -fq "/home/tiger/bin/pymp" || /usr/bin/pgrep -fq "/usr/bin/mpv2" ; then do_stuff; fi
并非所有版本都pgrep
支持-q
抑制输出的参数。如果您遇到这种情况,您可以pgrep
单独抑制每个重定向或组合重定向:
$ if { /usr/bin/pgrep -f "/home/tiger/bin/pymp" || /usr/bin/pgrep -f "/usr/bin/mpv2";} > /dev/null 2>&1 then do_stuff; fi
或者
$ if /usr/bin/pgrep -f "/home/tiger/bin/pymp" > /dev/null 2>&1 || /usr/bin/pgrep -f "/usr/bin/mpv2" > /dev/null 2>&1 ; then do_stuff; fi