linux的shell在后台执行是否可以读取键盘输入的字符串

有一个脚本,是要读取键盘输入的ip,然后把IP作为变量读取进来 ping $变量,将ping的结果存到日志里。
现在放到前台执行可以
可是后台执行的话,无法读取到键盘输入的变量。
那还有什么办法能实现,当我键盘输入包含ping的命令的时候,会自动把ping的结果写入到一个文件里呢?
请各位老师帮忙,谢谢:) (如果可用的话,会加分)

所谓后台执行,是创建子shell,由shell的子进程去执行的。
而用户输入在当前shell,这样显然是不可能被后台进程读到的。

可以考虑从文件中去读:
============= test.sh ==============
#!/bin/bash
while true
do
if [ -f file.txt ]; then
read ip <file.txt
[ -n "$ip" ] && ping -c 1 "$ip" >>result.txt
fi
sleep 1
done

运行 ./test.sh &
用户输入 echo 172.16.0.11 >file.txt

等一段时间后就可以在result.txt中看到结果了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-08
前后意思不一样啊
如果只是要ping自动把结果写入文件
就用重定向就可以了
ping 192.168.0.1 > tmp.ping
这样不就把结果全输入到了tmp.ping文件中了吗

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网