Решил поизучать bash, написал скрипт для работы с платкой launchpad на контроллере msp430, но появились несколько проблем: 1) при записи сообщений из /dev/ttyACM0 скрипт не отвечает, например не выводит сообщения с помощью echo
2) общение скрипта с платой осуществляется с помощью файла куда записывается сообщения от платы, а скрипт потом перебирает этот файл в поиске нужной команды, перебирает с помощью цикла for непосредственно из файла, а if ищет нужную команду, но проблема в том что не определяет ее при том что она есть, при просмотре с помощью echo переменной которой присваиваются значения из файла, показывает команду, но оператор if считает что допустим символ 1(будем считать что это команда) не равен 1, в общем бред какой то.
#!/bin/bash
if [ -e /dev/ttyACM0 ]
then
stty 9600 -F /dev/ttyACM0 raw -echo
echo -n "connect">/dev/ttyACM0 #говорит устройству что готов
cat /dev/ttyACM0 >> serial #записывает "диалог"
echo "podkluchen" #сообщение для отладки
for strin in $(cat serial) #ищет команды
do
echo $strin #пишет сообщения от платы, при этом команда "1" там есть
if [ $strin = 1 ] #поиск команды
then#какая нибудь функция
echo "komanda opredelena" #сообщение для отладки
fi
done #конец перебора файла
fi #конец поиска устройства
Содержание файла serial выглядит так:
1
1
и т.д.,т.е. каждое сообщение записываются в новой строке.
Также пробовал использовать разделители полей IFS=$'\n', так он вообще не определяет символ \ и заменяет все буквы n на пробелы в списке.