父shell和子shell之间怎么通信?
发表于 : 2008-08-16 18:19
RT
怎么把子shell的输出传回到父shell?
ps:不要说读文件
怎么把子shell的输出传回到父shell?
ps:不要说读文件

大蛇,麻烦举个例子嘛BigSnake.NET 写了:文件,管道,socket,共享内存。。。
我用过这个,我是想弄一个计时器,想随时的取得时间chasye 写了:PIPE=/tmp/test.pipe
mkfifo $PIPE
echo "just a test" > $PIPE #如果不在后面用&, 进程就动在一直等其它进程读$PIPE
cat $PIPE #读取信息
代码: 全选
timer()
{
[ -e /tmp/fifo ] || mkfifo /tmp/fifo
while :;do
printf '%.2d:%.2d' $(($i/60)) $(($i%60));i=$((i+1))
sleep 1
done > /tmp/fifo
}
i=0
timer &
cat /tmp/fifo
不行,这样的话它时间是cat一次才变一次,不cat就不变BigSnake.NET 写了:> /tmp/fifo 放到 printf 那行
每秒cat一次。。xiooli 写了:不行,这样的话它时间是cat一次才变一次,不cat就不变BigSnake.NET 写了:> /tmp/fifo 放到 printf 那行
晕乎,这样的话我就用另一种方法了。谢谢大家的解答哦BigSnake.NET 写了:每秒cat一次。。xiooli 写了:不行,这样的话它时间是cat一次才变一次,不cat就不变BigSnake.NET 写了:> /tmp/fifo 放到 printf 那行
管道就是这样的,必须两边都有东西才会工作
前面关了就会eof,后面关了就会broken pipe
lz说了, 不用写文件的方法chasye 写了:这样不如用信号
用trap捕捉,kill 发送
进程1,先把信息写入一文件
然后向进程2,发信号
进程2,收到信号,读取方件信息
基本就这样,把信息传来传去