【发布时间】:2012-03-11 17:17:21
【问题描述】:
我对 shell 脚本非常陌生,我正在尝试掌握管道。我可能会在这里完全错误的方向......
我所拥有的是一个 shell 脚本,其中包含一个简单的 while true 循环,在这个循环中,我让 netcat 监听指定的端口并将输入管道输入到一个正在通过标准输入等待命令的二进制文件。这是脚本-A
我有第二个 shell 脚本,它接受输入作为参数,然后将这些参数回显到 netcat 正在侦听的端口。这是脚本-B
我的目标是通过 Netcat 将位于 Script-A 中的二进制文件的返回输出获取到 Script-B 中,以便可以通过 stdout 返回。二进制文件必须初始化并等待输入。
这就是我所拥有的:
脚本-A
while true; do
nc -kl 1234 | /binarylocation/ --readargumentsfromstdinflag
done
脚本-B
foo=$(echo "$*" | nc localhost 1234)
echo "$foo"
使用此设置,二进制文件的输出是通过 Script-A 完成的 在做了一些研究之后,我到了这一点,我正在尝试使用命名管道创建一种从二进制文件返回到 netcat 的循环,它仍然无法正常工作 -
脚本-A
mkfifo foobar
while true; do
nc -kl 1234 < foobar | /binarylocation/ --readargumentsfromstdinflag > foobar
done
Script-B 没有改变。
请记住,我的 shell 脚本编写经验大约只有一天,谢谢。
【问题讨论】: