Eu tenho um programa em um host remoto, cuja execução eu preciso automatizar. O comando execute esse programa, na mesma máquina, se parece com isso:
/path/to/program -a file1.txt -b file2.txt
Nesse caso, file1.txte file2.txtsão usados para coisas completamente diferentes dentro do programa, então não posso apenas catjuntá-las. No entanto, no meu caso, o file1.txte file2.txtque eu quero passar para o programa existem apenas no meu dispositivo, não no host em que preciso executar o programa. Eu sei que posso alimentar pelo menos um arquivo através do SSH passando-o stdin:
cat file1.txt | ssh host.name /path/to/program -a /dev/stdin -b file2.txt
mas, como não tenho permissão para armazenar arquivos no host, também preciso de uma maneira de passar file2.txtpor lá. Estou achando que isso pode ser possível através do abuso de variáveis de ambiente e do uso criativo de cate sedjuntos, mas não conheço as ferramentas o suficiente para entender como as usaria para fazer isso. É factível e como?
catesednão é a solução aqui.