Respostas:
Estou realmente surpreso que essa resposta não seja oferecida aqui, eu estava em busca de uma solução para essa questão e acho que essa é a abordagem mais fácil, e mais flexível / perdoadora ...
Se você gostaria de colar várias linhas de um site / editor de texto / etc., No bash, independentemente de se tratar de comandos por linha, função ou script inteiro ... simplesmente comece com a (
e termine com a )
e Enter, como no seguinte exemplo:
Se eu tivesse o seguinte blob
function hello {
echo Hello!
}
hello
Você pode colar e verificar em um terminal usando o bash:
Começando com (
Colando seu texto e pressionando Enter (para torná-lo bonito) ... ou não
Terminando com a )
e pressionando Enter
Exemplo:
imac:~ home$ ( function hello {
> echo Hello!
> }
> hello
> )
Hello!
imac:~ home$
O texto colado continua automaticamente com um prefixo >
para cada linha. Eu testei várias linhas com comandos por linha, funções e scripts inteiros. Espero que isso ajude outras pessoas a economizar tempo!
Se você pressionar o C-x C-e
comando que irá abrir o seu editor padrão que o definiu .bashrc
, depois disso você pode usar todos os recursos poderosos do seu editor. Quando você salvar e sair, as linhas aguardarão sua entrada.
Se você quiser definir seu editor, basta escrever para Ex. EDITOR=emacs -nw
ou EDITOR=vi
dentro de~/.bashrc
emacs
e vi
fazer) e, ao salvar e sair, os comandos são executados instantaneamente .
Além da barra invertida, se uma linha terminar com |
ou &&
ou ||
, ela continuará na próxima linha.
Adicione parênteses ao redor das linhas. Exemplo:
$ (
sudo apt-get update
dokku apps
dokku ps:stop APP # repeat to shut down each running app
sudo apt-get install -qq -y dokku herokuish sshcommand plugn
dokku ps:rebuildall # rebuilds all applications
)
(
, os aparelhos {
também funcionam da mesma forma, no exemplo acima
Outra possibilidade:
bash << EOF
echo "Hello"
echo "World"
EOF
O iTerm lida perfeitamente com comandos de várias linhas, salva o comando de várias linhas como um comando, então podemos usar Cmd
+ Shift
+ ;
para navegar no histórico.
Verifique mais dicas do iTerm em Trabalhar de forma eficaz com o iTerm
Experimentar
out=$(cat)
Em seguida, cole suas linhas e pressione Ctrl-D (inserir o caractere EOF). Todas as entradas até Ctrl-D serão redirecionadas para stdout do gato.
$ out=$(cat) && eval "$out"
. pressione Enter após a última linha e depois CTRL + D como sugerido acima.