Preciso colar um código bash de várias linhas no terminal, mas sempre que o faço, cada linha é executada como um comando separado assim que é colada.
102
Experimente colocar \
no final de cada linha antes de copiá-la.
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
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 EnterExemplo:
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!fonte
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
ouEDITOR=vi
dentro de~/.bashrc
fonte
emacs
evi
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.fonte
Adicione parênteses ao redor das linhas. Exemplo:
fonte
(
, os aparelhos{
também funcionam da mesma forma, no exemplo acimaOutra possibilidade:
fonte
Para evitar uma longa linha de comandos em um arquivo de texto, mantenho meus snippets copy-pase assim:
fonte
Tente desta forma:
fonte
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
fonte
Experimentar
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.
fonte
$ out=$(cat) && eval "$out"
. pressione Enter após a última linha e depois CTRL + D como sugerido acima.