Я хотел проверить доступные последовательные порты. Как должен выглядеть сценарий, если я хочу:

  1. Проверьте доступные устройства от ttyUSBx
  2. Если какое-либо устройство подключено -> запустить первую программу
  3. После этого, если подключенных устройств более 1 запускаем вторую программу
0
lemming 30 Янв 2018 в 11:14

2 ответа

Лучший ответ

Есть много способов сделать это. Вот тот, которому не нужны ls или grep:

hasTTYUSB=0
moreThanOne=0
for i in /dev/ttyUSB* 
do
    if [ "$hasTTYUSB" -eq 1 ]; then 
        moreThanOne=1
    fi
    hasTTYUSB=1
done

if [ "$hasTTYUSB" -eq 1 ]; then
    # run first program here
fi
if [ "$moreThanOne" -eq 1 ]; then
    # run second program here
fi
0
telcoM 30 Янв 2018 в 12:07

Попробуйте использовать системный вызов ls /dev/ | grep tty и оцените его вывод.

serialPortList=$(ls /dev/ | grep tty)
for s in $serialPortList
do echo $s
done

Теперь вместо эха поместите то, что вы хотите сделать с экземпляром.

0
mldevw 30 Янв 2018 в 11:49
Это правильно возвращает мои устройства ttyUSB, но как сделать условие в сценарии оболочки?
 – 
lemming
30 Янв 2018 в 11:30
Пожалуйста, проверьте мое редактирование.
 – 
mldevw
30 Янв 2018 в 11:50