У меня проблема со сценарием. У меня есть измеритель напряжения, подключенный к последовательному USB-устройству (ttyUSB1). Смарт-метр нуждается в начальной последовательности и вскоре после этого следует вторая команда, чтобы предоставить всю ее информацию. Это прекрасно работает. 1.8.0 * 00 (000898.46), например, входит в эту строку, меня интересует. Число в скобках - это номер в кВт-ч, который я хочу. Если я открою второй терминал и сделаю cat/dev/ttyUSB1, он отлично работает, и я вижу информацию, поступающую. Через 4-5 секунд появится строка, в которой я хочу. Но сценарий не работает. Если я запустил скрипт в одном терминале, он будет ждать. Греп не заканчивает. Если я запустил его во втором терминале, то первый терминал будет завершен. Или просто grep 1.8.0/dev/ttyUSB1 -m1 в другом терминале работает, но не в скрипте. Я пробовал разные методы с чтением, и поэтому никто не работал. Честно говоря, я не понимаю, много сценариев и всегда удавалось каким-то образом, но здесь бездельники помогло :(Grep не работает в скрипте, а на консоли
Пожалуйста, помогите Спасибо Arne
здесь сценарий:.!
#! /bin/bash
echo start
echo $'\x2f\x3f\x21\x0d' > /dev/ttyUSB1
sleep 1
echo ask
echo $'\x06\x30\x30\x30\x0d' > /dev/ttyUSB1
echo wait
grep 1.8.0 /dev/ttyUSB1 -m1
echo end
Спасибо за ваш ответ, он создает/tmp/testfile, но он пуст. Если я открою второй терминал с cat/dev/USBtty1 показывает, что данные поступают. Я думаю, что сценарий каким-то образом не захватывает входящие данные от ttyUSB1. Может быть, мне нужно сделать 2 сценария, который заставляет метр отправлять данные, а второй - пытается получить мой номер. На самом деле я хотел только один, который возвращает мне данные. интересно, почему его не работает :( – Arne
Это/dev/USBtty1 или/dev/ttyUSB1? – Tiago
/dev/ttyUSB1 жаль, не наоборот – Arne