linux – 通过标准输入从shell脚本提交多个文件

我有一个程序,从命令行调用时从标准输入读取.通常用户会输入一些信息,在新行上按C-d表示文件结束,程序将处理该文件.然后再次提示用户,输入更多文本,再按C-d表示第二个文件的结束.

我正在寻找一个shell脚本,它将调用该程序并自动提交这两个文件.我想做这样的事情:

$myprogram < file1.txt < file2.txt

要么

$myprogam 

有什么建议?我在Linux下使用bash shell.

最佳答案
显然你可以使用cat将两个文件发送到程序标准输入中,但这可能不是你想要的:

$cat file1.txt file2.txt | myprogram

在上面的例子中,myprogram将无法分辨file1.txt的结束和file2.txt的开始,除非它们具有特定的格式,并且它正在观察流的某些格式,表示文件的结束或开始.

没有标准方法可以将多个流发送到标准输入.基本上只有一个流进入标准输入.

您可能会构建脚本,以便它在命令行上接受多个参数,并在内部打开并一次处理一个.也就是说,你会这样称呼它:

$myprogram file1.txt file2.txt

相关文章

linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、...
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别...
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书...
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满...
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的...
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线...