【发布时间】:2023-06-12 04:21:01
【问题描述】:
我是 linux 新手,一直在编写一些初学者级别的 shell 脚本。 我想做的是写2个脚本。第一个脚本将读取用户的输入,第二个脚本将在循环中显示此输入,直到它检测到用户的“退出”。
这就是我编写 2 个 shell 脚本的方式。
文件1.sh:
read var1
echo $var1
文件2.sh:
while [ "$var2" != "exit" ]
do
echo $1
read var2
done
现在,我想使用命名管道将 File1.sh 的输出作为输入传递给 File2.sh 的 var1。我可能必须修改 File2.sh 中的代码,以便它接受来自命名管道的参数(因为输入将来自命名管道而不是 $1),但我完全不确定如何去做.
将 File1.sh 的输出作为命名管道的输入可以给出如下:
mkfifo pipe
./File1.sh > pipe
此命令一直要求输入,直到我使用 ctrl + c 中断。我不知道为什么会这样。 另外如何让 File2.sh 从这个管道中读取?
这是正确的吗?
pipe|./File2.sh
我对 linux 很陌生,但我在网上搜索了很多,甚至没有一个在 shell 脚本中执行此操作的示例。
【问题讨论】:
标签: linux shell ubuntu ubuntu-14.04 named-pipes