Obtenha o caminho do documento aqui como um arquivo

2

Eu tenho um programa que recebe entrada de um arquivo XML cujo caminho é especificado como um parâmetro. Eu quero que meu shell script seja auto-contido, então um documento aqui parece ser o caminho certo a seguir. Infelizmente, este programa não aceita entrada de STDIN , então a tubulação não funcionaria.

Eu li que aqui docs são implementados como arquivos em /tmp , então isso me leva a pensar que pode haver um jeito.

Existe uma maneira de inserir meu arquivo XML em meu script de shell e obter um caminho para ele que esse analisador xml possa usar?

    
por Alexander 22.10.2015 / 22:46

2 respostas

3

Se o seu shell suportar a substituição de processos (bash, zsh, ksh88, ksh93), você poderá usar:

your_command <( cat <<EOF
contents of the
xml file
EOF
)

A parte inteira <(...) conecta a saída do comando cat <<EOF a um FIFO que é então passado como um argumento para o comando atual.

Mas eu acho que a maneira mais portátil seria, apenas criar um arquivo temporário com o conteúdo e excluí-lo depois.

    
por 22.10.2015 / 23:08
1

Os documentos "Aqui" podem muito bem ser lidos pelo interpretador a partir da fonte sendo interpretada e inserida no comando obtendo a entrada (é o que eu faria, de qualquer maneira, para evitar o incômodo de brincar com arquivos temporários). Em qualquer caso, qualquer mecanismo usado parece não ser documentado e, portanto, pode mudar a qualquer momento. E, em particular, não há garantia de que uma casca diferente seja obtida, como por ex. /bin/sh funcionará da mesma maneira.

    
por 22.10.2015 / 23:12