私のスクリプトはこれを処理しています。
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 /bin/pymp"]] || [[ /usr/bin/pgrep -f "/usr/bin/mpv2" ]] >/dev/null 2>&1; then '
答え1
[[
演算子は]]
明示的な比較テストに使用されます。どちらも確認したい場合注文するその結果、シェルを使用してください。
$ 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