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

有一个脚本,是要读取键盘输入的ip,然后把IP作为变量读取进来ping$变量,将ping的结果存到日志里。现在放到前台执行可以可是后台执行的话,无法读取到键盘输入的变量。... 有一个脚本,是要读取键盘输入的ip,然后把IP作为变量读取进来 ping $变量,将ping的结果存到日志里。
现在放到前台执行可以
可是后台执行的话,无法读取到键盘输入的变量。
那还有什么办法能实现,当我键盘输入包含ping的命令的时候,会自动把ping的结果写入到一个文件里呢?
请各位老师帮忙,谢谢:) (如果可用的话,会加分)
展开
 我来答
百度网友5311d79
2013-06-08 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3140万
展开全部
所谓后台执行,是创建子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中看到结果了。
buxingxing0123
2013-06-08 · TA获得超过281个赞
知道小有建树答主
回答量:396
采纳率:0%
帮助的人:287万
展开全部
前后意思不一样啊
如果只是要ping自动把结果写入文件
就用重定向就可以了
ping 192.168.0.1 > tmp.ping
这样不就把结果全输入到了tmp.ping文件中了吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式