'および&なしでバリアントを試み、パス全体を綴り、$ PATHに追加しました。ハイパーピングを呼び出すスクリプトと同じディレクトリにあっても、スクリプトがハイパーピングを見つけることができないようです。ユーザーpiとして実行します。私の髪を抜いてください! !スクリプトの実際の行
if [ $(/usr/bin/pgrep -c hyperping) -eq 0 ]; then './hyperping &'; fi
PATHの「ハイパーピング」[$PATHで確認、削除&でも確認]
***pi@pi20:~/tests $ ls -lt hyperping
-rwxr-xr-x 1 pi pi 692 Jul 30 13:10 hyperping***
「hyperping」は独立してうまく機能します。
「set -xv」を使用したbash出力
***/++ /usr/bin/pgrep -c hyperping
+ '[' 0 -eq 0 ']'
+ '/home/pi/tests/hyperping &'
./at7PM: line 33: /home/pi/tests/hyperping &: *No such file or
directory*/****
ベストアンサー1
を実行しておらず、文字通り空白と呼ばれるコマンドをhyperping
実行しようとしています。これは、コマンドが不必要に引用符で囲まれているために発生します。hyperping &
&
./hyperping &
'./hyperping &'
私はあなたが次のことをする予定だと仮定します
if ! pgrep hyperping >/dev/null; then
hyperping &
fi
静かにできるオプションがpgrep
ある場合は放棄できます。-q
>/dev/null
if ! pgrep -q hyperping; then
hyperping &
fi
このコマンドは、探しているものが正常に見つかった場合は終了状態0で終了し、そうでなければゼロ以外の終了状態で終了するpgrep
かのように動作します。grep
実際の解析を避けるために、上記のアプローチを使用することができます。出力手がかりを命令して、何かが見つかったかどうかについて手がかりを取得します。 「runというコマンドがif ! pgrep somecommand; then ...; fi
なければ...」と読み取ることができます。somecommand