我是一个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
我假设您正在尝试使用 shell 变量的值dvin
作为扩展正则表达式,并希望检查它是否与命令输出的任何行的开头匹配lsblk
。
为此,不要使用[[ ... ]]
:
if lsblk | grep -q -E -w "^$dvin"; then
# whatever code here
fi
另请注意,这-q
意味着“安静”,即没有输出,并且使用-q
意味着您不需要-o
(“仅匹配”)与grep
.
[[ ... ]]
当您想检查某些实用程序的退出状态时,您不会使用。在这里,您想要检查lsblk
+grep
管道如何退出,这将告诉您是否grep
找到匹配项。