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