Intereting Posts
Любая проблема, если состояние зомби не очищается? Как прочитать содержимое файла на удаленном сервере, который находится на локальном сервере в Unix? Хорошее подробное объяснение синтаксиса / etc / network / interfaces? Объединение двух команд SSH SSH с новым пользователем, сбой с отказано в разрешении (publickey) inotifywait не работает, когда папка удаляется и повторно создается Получить общий размер нескольких файлов из переменной, содержащей список файлов Комбинация клавиш для горизонтальной прокрутки Ищете способ улучшить обнаружение синаптической / тачпадной ладони Что делает `cp -x`? Что такое команда, в которой перечислены все периферийные устройства, подключенные к компьютеру в xubuntu? Команда больше не работает в пользовательских действиях Thunar Обратный DNS с BIND и IPv6 Команда «./configure» не работает Принудительно идентифицировать раздел с разделением

Невозможно разобрать вывод функции

Я пишу сценарий Bash, который должен запускать другие демонизированные сценарии Bash, называемые сервлетами.

Функция, о которой я спрашиваю, это getStatus :

 getStatus() { servletToCheck="$@" if [ "$(ps -aux | grep \"$(whoami)\" | grep \"${servletToCheck}\" | grep -v \"grep\" | wc -l)" -eq 0 ]; then echo -n "Offline" else echo -n "Online" fi } 

То, что он должен делать, это проверить, являются ли аргументы текущим процессом, принадлежащим пользователю, и вывести Online если это так, в Offline .
Теперь эта функция работает отлично . Проблема заключается в том, как я разбираю ее:

 if [ "$(getStatus ${tbnServlet})" == "Online" ]; then outSuccess "Started servlet: ${tbnServlet}" exit 0 else outWarning "Failed to start servlet: ${tbnServlet}" exit 3 fi 

Как ни странно, даже когда сервлет запущен и работает, он говорит, что не Failed to start/stop servlet и запустить функцию, в которой перечислены сервлеты, перечисляет все из них в автономном режиме, даже если это не так.

В чем проблема, и как я могу ее исправить?

Ваш код слишком сложный для этой основной работы …

 pgrep -u $USER "$tbnServlet" >/dev/null && echo "Started servlet: $tbnServlet" || echo "Failed to start servlet: $tbnServlet"