コマンドラインでのみbash比較式を評価/確認する方法は?

コマンドラインでのみbash比較式を評価/確認する方法は?

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ところで、特別な文字がないので二重引用符は必要ありません。

関連情報