Я новичок в bash-скриптинге, и у меня есть проблема, которую я не могу решить или найти ответ, если это неправильное место для публикации, тогда я извиняюсь.
Цель этого сценария - проверить состояние внешнего модема (непрерывно).
#!/bin/bash
set -e
PORT=/dev/ttyUSB0
COUNT=0
read_serial() {
timeout 15 ./test-read.sh 2>&1
sleep 10
}
while true; do
echo "Testing ""AT"" on $PORT for the $COUNT time"
echo -e "at\r" > $PORT
read_serial
COUNT=$((COUNT+1))
done
Сценарий чтения:
! / Bin / Баш
set -e
echo "Reading from serial port"
cat -v < /dev/ttyUSB0
wait
То, что я пытаюсь сделать, это отправить простое «at», затем запустить другой скрипт, который читает выходные данные, закрыть этот скрипт. Тогда идея состоит в том, чтобы проверить, отвечает ли модем «ОК» или «ОШИБКА». Я мог бы заставить это работать, создав два сценария, но это кажется грязным.
So my questions are:
1. Is it possible to start another script, from a script for a short period of time? When i run it, timeout shuts the whole thing down.
2. Is this approach wrong?
С наилучшими пожеланиями,
Вилли