Можно использовать reset
команда в ударе для сброса всего в оболочке, такой как цвет и так далее.
service iptables status | grep -qi "not running" && echo "stopped"
Просто необходимо заменить ||
с &&
. Одна запутывающая вещь о сценариях оболочки состоит в том, что 0 верно, и любое другое число является ложью напротив большинства других языков. Это просто, потому что программы обычно возвращают 0 для успеха.
Я также должен добавить 2>&1
после состояния как service
на моих выводах дистрибутива к stderr, не похож, это - проблема для Вас все же.
Если grep
не видит соответствия, оно возвратит ненулевой код. Возврат 0
средства, которыми было найдено соответствие. Вы, вероятно, хотите:
service iptables status | grep -qi 'not running' && echo 'Stopped'
true
/false
. Таким образомif exit status == EXIT_SUCCESS then …
. Grep также только использует1
для несоответствия. Что-либо> 1 является кодом ошибки. – Runium 11.01.2014, 12:07true
илиfalse
builtins для чего-то. Хотяsucceed
иfail
могут быть более интуитивные имена их :) – Graeme 11.01.2014, 13:49true
иfalse
булевы значения. Моя точка, возможно, плохо переданная, то, что статус выхода не является булевым значением. Это оценивает кtrue
иfalse
, но значение падает между 0 и 255. Мы также имеем((1))
и((0))
. – Runium 12.01.2014, 03:55