我有一个非常简单的bash脚本,使用 nc.traditional
打开端口9999(因为 nc
不再具有 -e
参数(,然后使用 nc.traditional
's -e
参数调用另一个bash脚本。第二个脚本的目的是询问已连接到该端口Linux框的人的 name 和 age ,然后只将这些信息存储在两个单独的文件中。<<<<<<<<<<<</p>
所有人都可以很好地工作,除了我打算在进入他的 age 时关闭echo
,而这就是导致失败和错误的原因。据我所知,这可能是因为file descriptors
,也可能是我不知道的其他东西。
显然,当脚本由另一个脚本调用时,使用-s
命令的CC_8开关不起作用。
在第二个脚本中使用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
我真的很感谢您是否可以帮助我解决这个问题。
预先感谢
的问题是,您(服务器(无法控制连接人员的终端(客户端(,这是您需要关闭回声以完成您想要的工作的地方。我认为没有一个esay的方式。您可以使用逃生代码响应以清除上一行,但是直到用户按Enter。