Я пытаюсь проверить, работает ли процесс (предположим, он называется some_process
) на сервере. Если это так, то echo 1, иначе echo 0.Bash: If/Else statement в одной строке
Это команда, которую я использую, но она работает только частично (подробнее см. Ниже). Обратите внимание, что мне нужно написать скрипт в одной строке.
ps aux | grep some_proces[s] > /tmp/test.txt && if [ $? -eq 0 ]; then echo 1; else echo 0; fi
Примечание:[s]
в some_proces[s]
, чтобы предотвратить grep
от возвращения себя.
Если some_process
работает, то "1"
получает эхо, что хорошо. Однако, если some_process
не работает, ничего не получает.
Вы можете использовать 'ps -Ccmd' для поиска процессов, имя команды которых« cmd », что может полностью исключить' grep'. 'ps' установит код выхода на некоторое ненулевое значение, если ему не удается найти соответствующий процесс. – rici