Вразнобой, так сказать, как буду вспоминать.
Первое, самое актуальное. Скриптовая логика. Я так пока и не пришёл к единому подходу, как возвращать и анализировать логические значения. Был бы какой-нибудь «Forth командной строки», нормально взаимодействующий с Linux-окружением, было бы проще. Но приходится работать в контексте bash'а.
Например, статус «допустима ли концентрация CO2». Очевидное решение — возвращать после проверки «0» или «1»:
#!/bin/bash
[ $(hall_co2) -ge 1100 ] && echo 1 || echo 0
И проверять соответствующим образом:
#!/bin/bash
. $(dirname $0)/../init
if [ "$(is_hall_co2_notice)" == "0" ]; then
exit
fi
once_per 10 check-co2-hall-notice send-to-telegram "В зале душно: $(hall_co2) PPM."
Можно возвращать пустое значение и проверять по -z/-n, но тогда теряется единообразие с командами, возвращающими целые значения. Жаль, что bash не считает «0» за false.
Но, с другой стороны, если возвращать статус, то можно было бы писать короче и логичнее, например:
is_hall_co2_notice || exit
Я пока, как в примере выше, вывожу «0» или «1», но не считаю этот вариант удобным :-/