gammu monitor | awk '/^Battery level/{exit($4 < 25 ? 2 : $4 <= 50)}'
Выше использовано
условие ? true-part : false-part
троичного оператора, встречающегося во многих языках (C, perl, Java... и др.). Если$4 , возвращает 2, в противном случае возвращает результат логического выражения
$4 (которое равно 1, когда истинно, и 0 в противном случае).
Значит, вы хотите запускать функции, только если для соответствующей переменной установлено значение TRUE? Я бы сделал что-то вроде
[[ "$data_error_check_run" == TRUE ]] && data_error_check
[[ "$check_ctl_dat_exists_run" == TRUE ]] && check_ctl_dat_exists
[[ "$mask_field_run" == TRUE ]] && mask_field "$MASK_FILE"
[[
не ругается на неустановленные переменные, поэтому не установить конкретную переменную — это то же самое, что установить ее в FALSE
.