Bash
有條件的 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 ]]'
我假設您正在嘗試將 shell 變數的值
dvin
用作擴展正則表達式,並希望檢查它是否在 command 的任何輸出行的開頭匹配lsblk
。為此,請勿使用
[[ ... ]]
:if lsblk | grep -q -E -w "^$dvin"; then # whatever code here fi
另外,請注意,這
-q
意味著“安靜”,即沒有輸出,而 using-q
意味著您不需要-o
(“僅匹配”) withgrep
。
[[ ... ]]
當您想檢查某些實用程序的退出狀態時,您不會使用。在這裡,您要檢查您的lsblk
+grep
管道是如何退出的,它將告訴您是否grep
找到匹配項。