У меня есть очень простой Bash-скрипт, который открывает порт 9999 с использованием nc.traditional
(поскольку nc
больше не имеет аргумента -e
), а затем вызывает другой Bash-скрипт с использованием nc.traditional
'-e
аргумента. Цель второго сценария - запросить имя и age человека, подключенного к Linux-порту на этом порту, и просто сохранить эту информацию в двух отдельных файлах.
Все работает хорошо, за исключением того, что я намереваюсь отключить echo
ing, когда кто-то вводит свой age , и это именно то, что вызывает сбои и ошибки. Насколько мне известно, это может быть из-за file descriptors
или это может быть что-то еще, что я не знаю.
Очевидно, что использование -s
ключа команды read
не работает, когда скрипт вызывается другим скриптом.
Использование stty -echo
во втором скрипте приводит к появлению ошибки "stty: 'стандартный ввод': неуместно ioctl для устройства" при выводе первого скрипта.
Также я хотел бы определить тайм-аут для моего приглашения, чтобы пользователь не блокировал мои ресурсы. Команда timeout
также не работает, когда она вызывается другим скриптом.
Первый скрипт Bash:
#!/bin/bash
while true; do
nc.traditional -n -l -p 9999 -e ./NameAge.sh
sleep 5
done
Второй скрипт Bash:
#!/bin/bash
echo -n "Please enter your name:"
read name
echo "name: $name" >> /tmp/name.txt
echo -n "Please enter your age:"
read age
echo "age: $age" >> /tmp/age.txt
Я очень признателен, если бы вы могли помочь мне с этой проблемой.
Заранее спасибо