使用命令传递文件内容与文件名

使用命令传递文件内容与文件名

我有一个程序,通常将文件名作为要读取的文件的输入,但出于脚本目的,我想将文件内容作为参数传递。我无法重写程序以从命令行读取文本。有没有办法通过命令行将内容作为文本传递?该文件是二进制文件。

例如:prog file.txt -p 0

答案1

如果你使用,bash你可以使用所谓的流程替代特征(<()),例如:

prog <(echo $SOME_DATA) -p 0

答案2

以下是在 Linux 上执行此操作的另一种方法:

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

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

答案3

我不确定这些其他答案是否正确或是否有效。

标准用于-表示 STDIN。当您的程序解析 ARGV 参数并尝试打开文件时,它将映射到 STDIN 文件句柄。

cat $SOME_DATA | prog -p 0 -

相关内容