通过命令传递文件内容与文件名

我有一个程序,通常需要一个文件名称作为input的文件来读取,而是,为了脚本的目的,我想通过文件内容作为参数。 我不能重新编写程序来从命令行读取文本。 有没有办法通过命令行将内容作为文本传递? 该文件是一个二进制文件。

例如:prog file.txt -p 0

如果使用bash ,则可以使用所谓的进程replacefunction( <() ),例如:

 prog <(echo $SOME_DATA) -p 0 

这是另一种在linux上执行的方法:

 $ cat $SOME_DATA | prog /dev/stdin -p 0 

在这种情况下,您将数据喷入STDIN for prog ,然后通过特殊设备/dev/stdin从STDIN读取。 请注意, /dev/fd/1是等效的。

我不确定这些其他答案是否正确或将工作。

标准是用-代表STDIN。 当您编程分析您的ARGV参数并尝试打开该文件时,它将映射到STDIN文件句柄。

 cat $SOME_DATA | prog -p 0 -