このコマンドの結果をテストしたいと思います:
dmesg | grep "Firmware patch 1563"
したがって、私は次のように書いてみます:
if [ "`dmesg | grep "Firmware patch 1563`" == "" ]
しかし、動作しません。このコマンドをどのように書き直せばよいでしょうか?
答え1
コマンドの結果を直接テストできます。
if dmesg | grep -q "Firmware patch 1563"
パイプの出力が空かどうかを確認する必要がある場合は、$()
コマンド置換に使用するそしてあなたの巣引用独立したコマンドの場合と同様です。
if [ -z "$(my_command | other_command "some argument")" ]
答え2
答え3
あなたが書いたものは機能するはずです。引用を忘れたため機能しません。正しくは次のようになります。
if [ "`dmesg | grep "Firmware patch 1563"`" == "" ]
"
の後の余計な部分に注目してください1563
。そうは言っても、私はもう一つの答えあなたがやりたいことを達成するためのより良い方法を提供します。