Замените
if [[ $board_status == "BUSY" ]]; then
на
if [[ $board_status =~ "BUSY" ]]; then
Первая команда проверяет, соответствует ли $board_status
BUSY
. Последний проверяет, содержит ли $board_status
просто символы BUSY
Что пошло не так.
Предположим, что файл /userdata/status
имеет окончания строки DOS / Windows, что означает, что board_status
будет иметь последний символ возврата каретки, \r
, например:
board_status=$'BUSY\r'
С этим значением обратите внимание, как выглядит результат declare -p
:
$ declare -p board_status
"eclare -- board_status="BUSY
Это потому, что возврат каретки после Y
заставляет терминал начать запись с начала строки, перезаписывая d
тем, что должно было быть последним символом в строке, "
.
If board_status
на самом деле было BUSY
, вот как должна выглядеть команда declare -p
:
$ board_status=$'BUSY'
$ declare -p board_status
declare -- board_status="BUSY"