Мне нужно создать сценарий, который подключается через udp или tcp (возможны оба варианта) к серверу, затем отправляет строку «TEMP», делает что-то с ответом и затем выходит. Этот скрипт должен работать в openwrt os.
Вот что у меня есть:
exec 3<>/dev/tcp/192.168.100.151/20108
echo -e "TEMP" >&3
read key <&3
echo $key
exec 3<&-
exec 3>&-
exit
Это работает, как и ожидалось, на моем компьютере Arch. но когда я пытаюсь запустить из openwrt, он выдает:
tcp.sh: line 2: can't create /dev/tcp/192.168.100.151/20108: nonexistent directory
root@OpenWrt:~#
Кажется, что openwrt не так управляет сокетами.
Другой вариант, доступный для openwrt, - использовать nc.
Nc работает нормально, но если требуется установить соединение, введите «TEMP» и нажмите ввод, например:
root@OpenWrt:~# nc 192.168.100.151 20108
TEMP
22.87
Есть ли способ сделать это одной строкой без ввода и нажатия Enter? Я пробовал это:
root@OpenWrt:~# echo TEMP | nc 192.168.100.151 20108
root@OpenWrt:~#
Безуспешно.
Любая идея будет приветствоваться. Леандро.