Acessar o terminal stdin quando é a fonte do próprio script bash

1

Isso é um pouco confuso para explicar.

Eu tenho um script que quero implantar assim:

curl -Ls example.com/myscript.sh | bash

O problema é que o script lê a entrada padrão da seguinte forma:

echo "You should edit /srv/pillar/tm.sls now. Comments are in the file."
echo Type "skip" to skip or anything else to edit.
read text
if [ "$text" != "skip" ]; then
sudo pico /srv/pillar/tm.sls
fi

Agora, como o stdin está obviamente servindo como fonte do script em si, isso não funciona atualmente. Existe uma maneira de recuperar o terminal?

(A solução atual é implantá-lo assim: curl -Ls example.com/myscript.sh > myscript.sh && bash myscript.sh )

    
por Steve Bennett 19.02.2014 / 13:13

1 resposta

2

Use uma substituição de processo

bash <(curl -Ls example.com/myscript.sh)
    
por glenn jackman 19.02.2014 / 15:32