Как вкладывать кавычки в команды bash

Как вкладывать кавычки в команды bash

Я хочу проверить результат этой команды:

dmesg | grep "Firmware patch 1563"

Поэтому я постараюсь написать что-то вроде этого:

if [ "`dmesg | grep "Firmware patch 1563`" == "" ]

Но это не работает. Как мне переписать эту команду?

решение1

Вы можете проверить результат команды напрямую:

if dmesg | grep -q "Firmware patch 1563"

Если вам нужно проверить, пуст ли выходной поток трубы,использовать $()для замены команди вложите свойкавычкикак если бы вы использовали отдельную команду:

if [ -z "$(my_command | other_command "some argument")" ]

решение2

Вы можете использоватьзамена командынапрямую:

if $(dmesg | grep -q "Firmware patch 1563"); then
  # Do something here
fi

Или лучше использовать команды напрямую, напримерответ l0b0.

решение3

То, что вы написали, должно работать. Это не потому, что вы забыли цитату. Это должно быть:

if [ "`dmesg | grep "Firmware patch 1563"`" == "" ]

Обратите внимание на лишнее "после 1563. С учетом сказанного, я думаю,другой ответдает вам лучшие способы достичь желаемого.

Связанный контент