Outra solução é usar Substituição de Processo no Bash. Se o seu sistema tiver pipes nomeados, você poderá usar esse recurso.
É usado assim:
program_expecting_a_file <(list)
em que list
é uma sequência de comandos shell (na verdade, pipelines; os detalhes completos são aqui ). list
será executado e sua saída será conectada ao pipe. O nome do pipe é então passado para o seu programa.
NOTA: os espaços não são permitidos entre <
e (
.
(A outra substituição >(list)
também funciona como esperado).
No seu caso específico, você poderia usar
program_expecting_a_file <(echo "$your_strings")
embora você possa achar a solução do @ meuh mais elegante.
Atualização: muitos exemplos de uso podem ser encontrados no Guia Avançado de Script Bash .