Я не могу получить "статус выхода" с "командой тайм-аута" - PullRequest
0 голосов
/ 19 декабря 2018

Я ожидаю получить «статус 124», но получил «статус 0» со следующим кодом

timeout 10 sleep 20 | tee -a LOG_FILE LOG_FILE2
RET=$?
echo $RET

Я получил «статус 0», используя этот код.

Я ожидаючтобы получить «статус 124».

Что происходит в этом коде

1 Ответ

0 голосов
/ 19 декабря 2018

$? содержит состояние выхода последнего конвейера.Используйте PIPESTATUS для получения состояния выхода переднего плана конвейеров (в данном случае команда timeout).

$ timeout 10 sleep 20 | tee -a LOG_FILE LOG_FILE2
$ RET=${PIPESTATUS[0]}
$ echo $RET

124  # timed out

man bash

PIPESTATUS : переменная массива (см. Массивы ниже), содержащая список значений состояния выхода из процессов в самом последнем выполняемом конвейере переднего плана (который может содержать только одну команду).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...