Я хочу проверить результат этой команды:
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
. С учетом сказанного, я думаю,другой ответдает вам лучшие способы достичь желаемого.