Se você usa bash
, pode usar o recurso de substituição do processo ( <()
), por exemplo:
prog <(echo $SOME_DATA) -p 0
Eu tenho um programa que normalmente leva um nome de arquivo como entrada para um arquivo para ler, mas, em vez disso, para fins de script, eu quero passar o conteúdo do arquivo como um parâmetro. Eu não posso re escrever o programa para ler o texto da linha de comando. Existe uma maneira de passar o conteúdo como texto via linha de comando? O arquivo é um arquivo binário.
Ex: prog arquivo.txt -p 0
Aqui está outra maneira de fazer isso no linux:
$ cat $SOME_DATA | prog /dev/stdin -p 0
neste caso, você está esguichando os dados para STDIN por prog
e, em seguida, lendo a partir de STDIN através do dispositivo especial /dev/stdin
. Observe que /dev/fd/1
é equivalente.
Não tenho certeza se essas outras respostas estão corretas ou funcionarão.
O padrão é usar -
para representar STDIN. Quando você programa analisa seus argumentos ARGV e tenta abrir o arquivo, ele irá mapear para o arquivo STDIN.
cat $SOME_DATA | prog -p 0 -
Tags linux