Исправление vodz, (текущая версия) :
когда скрипт отправляет сообщение connect на устройство, устройство отвечает, это сообщение записывается в файл serial
Вы смотрели бинарные коды в этом файле serial? Если там концы строк \r\n, то не удивительно, что bash ничего не может сравнить, так как по умолчанию IFS=" \t\n", и \r остаётся у строк команд.
потом скрипт перебирает его, и ищет команды
Вы спутали отладку и правильный метод работы. Нет никакого потом. Как вы узнали момент, когда это потом наступает? Надо сразу читать и анализровать строки:
IFS=$' \t\r\n'
while read string; do
case "$string" in
cmd1) действие1;;
cmd2) действие2;;
quit) break;;
esac
done < /dev/ttyACM0
Исходная версия vodz, :
когда скрипт отправляет сообщение connect на устройство, устройство отвечает, это сообщение записывается в файл serial
Вы смотрели бинарные коды в этом файле serial? Если там концы строк \r\n, то не удивительно, что bash ничего не может сравнить, так как по умолчанию IFS=" \t\n", и \r остаётся у строк команд.
потом скрипт перебирает его, и ищет команды
Вы спутали отладку и правильный метод работы. Нет никакого потом. Как вы узнали момент, когда это потом наступает? Надо сразу читать и анализровать строки:
IFS=$' \t\r\n"
while read string; do
case "$string" in
cmd1) действие1;;
cmd2) действие2;;
quit) break;;
esac
done < /dev/ttyACM0