#/bin/sh -e
# create a fifo
unlink /tmp/f
mkfifo /tmp/f
# connect to the server in the background
nc localhost 4444 < /tmp/f &
# redirect stdout to the fifo
exec > /tmp/f
# an example that writes to stdout
while true; do
sleep 1
echo "hello world"
done
我能够通过将输出重定向到 fifo 并将 fifo 作为输入来实现这一点
nc
:请注意,这只是将标准输出传输到套接字;您可以添加
exec 2> /tmp/f
以包含 stderr。我没有成功连接标准输入,但它应该是可能的。(此脚本的早期版本与 交换
nc
;exec
这适用于 Zsh,但不适用于 BusyBox 的 shell,ash。)