linux的shell在后台执行是否可以读取键盘输入的字符串
发布网友
发布时间:2022-04-22 11:11
我来回答
共2个回答
热心网友
时间:2023-10-12 02:25
所谓后台执行,是创建子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中看到结果了。
热心网友
时间:2023-10-12 02:25
前后意思不一样啊
如果只是要ping自动把结果写入文件
就用重定向就可以了
ping 192.168.0.1 > tmp.ping
这样不就把结果全输入到了tmp.ping文件中了吗