我想做的是:
这应该在bash脚本中完成。
我试过了:
./script&
pid=$!
sleep 10
echo $string > /proc/${pid}/fd/0
它在shell中有效,但在脚本中运行时却没有。
答案 0 :(得分:4)
( sleep 10; echo "how you doin?" ) | ./script
您的方法可能适用于Linux,例如,您的脚本stdin就像是一个FIFO:
myscript(){ tr a-z A-Z; }
rm -f p
mkfifo p
exec 3<>p
myscript <&3 &
pid=$!
echo :waiting
sleep 0.5
echo :writing
file /proc/$pid/fd/0
echo hi > /proc/$pid/fd/0
exec 3>&-
但是这个/proc/$pid/fd
内容在不同的Unices上表现不同。
它不适用于您的情况,因为您的脚本stdin是终端。 使用默认的终端设置,终端驱动程序会将尝试从中读取的后台进程暂停(通过向它们发送SIGTTIN信号)并写入终端文件描述符只会得到回显 - 它们不会唤醒睡眠的后台进程我试着从终端上读书。
答案 1 :(得分:1)
这个怎么样(因为OP要求在脚本中完成):
{
"proxy":"http://xxx.xxx.xxx.xxx:80"
}
只是提出缺少的元素而不是评论编码风格; - )