![用于管道传输多个 .in 文件并按顺序保存 .out 文件的 bash shell 脚本](https://linux22.com/image/76187/%E7%94%A8%E4%BA%8E%E7%AE%A1%E9%81%93%E4%BC%A0%E8%BE%93%E5%A4%9A%E4%B8%AA%20.in%20%E6%96%87%E4%BB%B6%E5%B9%B6%E6%8C%89%E9%A1%BA%E5%BA%8F%E4%BF%9D%E5%AD%98%20.out%20%E6%96%87%E4%BB%B6%E7%9A%84%20bash%20shell%20%E8%84%9A%E6%9C%AC.png)
在 bash shell 中,我想要一个脚本或命令来获取所有 test.in 文件(我有 test1.in、test2.in、test3.in 到 testN.in)并将其通过管道传输到可执行文件 testExecutable 并输出结果每个都在 testN.out 文件中。
到目前为止,我知道我可以通过执行 find 输入所有文件。测试*.in < 测试可执行文件
但我不确定如何使用输出管道为 test1.in 生成 mytest1.out ,为 test2.in 生成 mytest2.out ,依此类推。
提前感谢您的帮助。
答案1
你需要一个循环:
for f in test*.in; do testExecutable <"$f" >"my${f%in}out"; done
上面的内容对于所有文件名都是安全的,甚至是包含空格的名称。