如何在 bash 命令中嵌套引号

mic*_*con 3 shell bash quoting

我想测试这个命令的结果:

dmesg | grep "Firmware patch 1563"
Run Code Online (Sandbox Code Playgroud)

因此,我尝试写这样的东西:

if [ "`dmesg | grep "Firmware patch 1563`" == "" ]
Run Code Online (Sandbox Code Playgroud)

但它不起作用。我应该如何重写这个命令?

l0b*_*0b0 7

您可以直接测试命令的结果:

if dmesg | grep -q "Firmware patch 1563"
Run Code Online (Sandbox Code Playgroud)

如果您需要检查管道的输出是否为空,请使用$()命令替换并像使用独立命令一样嵌套引号

if [ -z "$(my_command | other_command "some argument")" ]
Run Code Online (Sandbox Code Playgroud)