In other words, I look for either a way to run the script from paste, or to paste it into a temporary file and run it "in-place" without saving any file --- To run everything is least number of clicks and pastings.
Assumindo que seu shell interativo é um shell Bash ou compatível - você está procurando por isso:
bash << 'EOT'
<PASTE SCRIPT HERE>
EOT
A prática de código acima é chamada "Heredoc" (abreviação de "Here document"), e eu a usei para executar todos os comandos até o EOT em um novo sub-shell.
Dessa forma, você pode alterar o diretório de trabalho ou alterar o ambiente. Observe que o EOT não é uma palavra-chave, então você pode usar qualquer frase que quiser em vez de EOT (apenas certifique-se de que a ortografia seja a mesma no início e no final do heredoc).
As aspas simples estão em torno de 'EOT'
são usadas para instruir o shell pai para não executar qualquer substituição no documento. Isso impede, por exemplo, a expansão da variável pelo shell pai em vez do shell filho.
Como um exemplo concreto:
sylvain@bulbizarre:~$ bash << 'EOT'
echo hello
cd /
echo We are in ${PWD}
EOT
hello
We are in /
sylvain@bulbizarre:~$ # <-- I'm still in my home directory when
# back to the interactive shell
In other words, I look for either a way to run the script from paste, or to paste it into a temporary file and run it "in-place" without saving any file --- To run everything is least number of clicks and pastings.
Se você quiser manter uma cópia do comando executado, você pode usar essa variação:
sylvain@bulbizarre:~$ tee /tmp/saved.sh << 'EOT' | bash
echo hello
cd /
echo We are in ${PWD}
EOT
hello
We are in /
sylvain@bulbizarre:~$ cat /tmp/saved.sh
echo hello
cd /
echo We are in ${PWD}