if
次の式がステートメントでどのように機能するかを見たいとします。
[ `ps -p 4800 -o comm=` == "ssh-agent" ]
しかし、私はこれのために特別なスクリプトを書くのは好きではありません。どのブール値を返すかを確認するために、ライブシェルでこのステートメントを評価および/または実行できますか?
コマンドラインに入れると誓います。
$ [ `ps -p 4800 -o comm=` = "ssh-agent" ]
-bash: [: =: unary operator expected
$ [ `ps -p 4800 -o comm=` == "ssh-agent" ]
-bash: [: ==: unary operator expected
答え1
何も返されない場合、ps
最初の文字列は消え、[
2つのパラメータのみが表示されます。問題を解決するには、二重引用符を使用してください。
[ "`ps -p 4800 -o comm=`" = ssh-agent ]
echo $?
$?
条件が true を返す場合は 0 です。
ssh-agent
ところで、特別な文字がないので二重引用符は必要ありません。