Возвращаемое значение функции ожидания

Я использую функцию тайм-аута на debian, чтобы подождать 5 секунд для моего скрипта. Отлично работает, но проблема заключается в том, что мне нужно вернуть значение. Как 1 для таймаута и 0 без таймаута. Как я это сделаю?

Посмотрите мой код:

  • Что означает двоеточие (':') в синтаксисе разрешения переменной bash?
  • Как подключиться к устройству через SSH по прямому сетевому соединению
  • Проблема с загрузкой busybox switch_root
  • Как настроить xorg.conf для широкоэкранного VNC на безголовом Linux / Ubuntu?
  • Как добавить себя в список sudoers?
  • Как изменить цикл for?
  • timeout 5 /some/local/script/connect_script -x 'status' > output.txt # here i need the return of timeout 

    Как вы видите, мой connection_script -x 'status' возвращает статус в виде строки и печатает его на экране (возможно, вы не можете видеть это). Исход этой проблемы заключается в том, что если сервер (для connect_script) заблокирован, скрипт ничего не делает , Вот почему мне нужен тайм-аут. И когда он истекает, я хочу перезагрузить сервер. Я могу это сделать, но я понятия не имею, как я могу узнать, если его тайм-аут или нет …

  • Очистка файлов журнала в Linux
  • Могут ли загружаться модули в глобальном режиме на современных ядрах Linux?
  • Как я могу работать с двоичным в bash, чтобы скопировать байты дословно без какого-либо преобразования?
  • Неблокирующая команда bash
  • Порядок подстановки команды Linux
  • Незначительное изменение команды для компиляции программы на C ++ вызывает ошибку
  • 2 Solutions collect form web for “Возвращаемое значение функции ожидания”

    Если timeout , он выходит со статусом 124 ; вы можете проверить это, чтобы определить, был ли сценарий отключен или нет.

    Согласно руководству ( man timeout ):

    Тайм-аут Synopsis [OPTION] NUMBER [SUFFIX] COMMAND [ARG] …

    […] Если команда отключена, затем выйдите со статусом 124. В противном случае выйдите со статусом COMMAND

    Объедините это со знанием того, что статус выхода или возвращаемое значение сохраняется в переменной, $? , и у нас есть…

     timeout 5 /some/local/script/connect_script -x 'status' > output.txt RETVAL=$? 

    Затем вы можете сделать больше обработки на основе значения $RETVAL , которое будет 124, если оно $RETVAL , или какое-либо другое значение, основанное на статусе выхода connect_script .

    Linux и Unix - лучшая ОС в мире.