所以我有一个在 while(true) 循环中运行的 Linux 程序,它等待用户输入、处理它并将结果打印到标准输出。
我想编写一个 shell 脚本来打开这个程序,从一个 txt 文件中输入行,一次一行,并将每一行的程序输出保存到一个文件中。
所以我想知道是否有任何命令:
- 打开程序
- 向进程发送文本
- 从该程序接收输出
非常感谢。
最佳答案
听起来你想要这样的东西:
cat file | while read line; do
answer=$(echo "$line" | prog)
done
这将为每一行运行一个新的 prog
实例。该行将是 prog
的标准输入,输出将放在变量 answer
中供您的脚本进一步处理。
有些人反对“cat文件|”因为这会创建一个您并不真正需要的过程。您还可以通过将其放在 done
之后来使用文件重定向:
while read line; do
answer=$(echo "$line" | prog)
done < file
关于shell - 如何将文本发送到 shell 脚本中的进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2451063/