Вариант 2 - это вариант, только если вас волнует только разница между успехом и неудачей. Если вам нужно различать разные ненулевые статусы выхода, то необходим вариант 1.
some-command arg1 arg2
exit_status=$?
if [[ $exit_status -eq 0 ]]; then
# ...
elif [[ $exit_status -eq 1 ]]; then
# ...
elif [[ $exit status -eq 42 ]]; then
# ...
else
# ...
fi
(Вам необходимо сохранить $?
как exit_status
, потому что $?
будет сброшен первым [[...]]
; в случае сбоя первый elif
не будет проверять то же значение для $?
снова.)
Ну, не совсем необходимо . Третий вариант - использовать оператор case
, который может устранить необходимость в сохранении $?
, если вам не нужно снова обращаться к его значению.
some-command arg1 arg2
case $? in
0) # ...
;;
1) # ...
;;
42) # ...
;;
*) # ...
;;
esac
У меня нет dump1090
или приемник для подтверждения любого из этого. Но если вы читаете дальше в этой странице GitHub, вы ссылались, вы увидите, что если вы запустите:
./dump1090 --interactive --net
Он начнется встроенный веб-сервер.
Затем вы можете подключиться к порту Raspberry PI 8080
с вашим веб-браузером, введя его IP-адрес и порт в адресной строке браузера:
http://<IP address of Rasberry Pi>:8080/
(не забывайте, что толстая кишка
До 8080
)
Ваш браузер должен отображать ваш живой трафик.
Самый простой способ захвата такого вывода - перенаправить стандартную ошибку в файл. В командной оболочке это делается с помощью 2> файла
. Таким образом, если ваш демон обычно запускается следующим образом:
dump1090 --interactive
Измените это на
dump1090 --interactive 2> /tmp/dumplog
Что сохранит его вывод в файл /tmp/dumplog
. На всякий случай вы можете перенаправить как стандартную ошибку, так и стандартный вывод (так как я не знаю, в какой из двух файлов ваша программа пишет):
dump1090 --interactive > /tmp/dumplog 2>&1