条件付きgrepパイプラインの問題

条件付きgrepパイプラインの問題

私はbashスクリプトを学ぶための初心者ですが、この問題を解決する方法がわかりません。

./elleviemme.sh: line 7: unexpected token `|', conditional binary operator expected
./elleviemme.sh: line 7: syntax error near `|'
./elleviemme.sh: line 7: `if [[ lsblk | grep -qwEo ^$dvin ]]' 

答え1

私はあなたがシェル変数の値を拡張正規表現として使用しようとしており、dvinそれがコマンド出力の行の先頭に一致することを確認したいと思いますlsblk

これを行うには、以下を使用しないでください[[ ... ]]

if lsblk | grep -q -E -w "^$dvin"; then
   # whatever code here
fi

また、これは-q「静かな」、つまり出力がないことを意味し、使用はと(「一致のみ」)-q必要ではないことを意味します。-ogrep

[[ ... ]]一部のユーティリティの終了ステータスを確認したい場合は、この機能を使用しません。ここでは、一致が見つかったかどうかを知らせるlsblk+パイプがどのように終了したかを確認したいと思います。grepgrep

関連情報