私は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
必要ではないことを意味します。-o
grep
[[ ... ]]
一部のユーティリティの終了ステータスを確認したい場合は、この機能を使用しません。ここでは、一致が見つかったかどうかを知らせるlsblk
+パイプがどのように終了したかを確認したいと思います。grep
grep