Parar a execução automática do terminal ao colar um comando

27

Certo, esse é um recurso um pouco irritante, porque algo acontece e, outras vezes, não é muito estranho.

Eu colo um comando no terminal com o objetivo de ajustar seus argumentos e, às vezes, ele executa o segundo em que o colo. Às vezes não.

Isso varia de embaraçoso (postar comentários sem sentido em um IRC) a perigoso.

Como posso desligar esse recurso definitivamente? Eu nunca, nunca, nunca quero que o terminal seja executado automaticamente quando colo nele.

Starkers
fonte
pode ser interessante - bbs.archlinux.org/viewtopic.php?id=95548 , também as pessoas fizeram explorações ocultando o conteúdo em uma cópia / pasta reddit.com/r/linux/comments/1bv54e/…
Mateo
1
Uau, um recurso deve ser incorporado ao Ubuntu para impedir isso. Quando você gostaria de colar um retorno de carro no terminal?
quer
uma das soluções seria usar algo como oh-my-zshou qualquer outra substituição de terminal.
Pramesh Bajracharya

Respostas:

28

Não há execução automática. Você provavelmente também está copiando uma quebra de linha (ou mais) após o comando.

Se você colar um comando com uma quebra, o shell (linha de comando) pensará que você pressionou o botão de quebra (Enter, Return) sozinho.


Esta resposta explica apenas por que o OP está recebendo o comportamento indesejado. No entanto, em outra resposta, há uma solução real para o problema do OP.

mitchkman
fonte
5
É verdade, mas a questão é como pará-lo, se possível :)
Pawel Cioch
1
Uma correção para Putty, pelo menos, serverfault.com/questions/731022/…
Pawel Cioch
13

Uma solução real é abrir o modo de edição ctrl-x ctrl-ee colar com segurança a área de transferência no seu editor de escolha (geralmente emacs ou vim). Após concluir a edição do comando, salve e saia e ele será executado na linha de comando. Esse é um bom hábito para comandos longos ou complexos, especialmente ao colar hashes de confirmação em comandos git, e pode ajudar a evitar alguns resultados assustadores a longo prazo.

O editor pode ser alterado definindo as variáveis ​​VISUAL e EDITOR (elas têm significados diferentes, veja aqui ).

borrascador
fonte
wow, há sempre algo a aprender depois de décadas de uso do Linux :) Obrigado, essa é a única resposta que realmente resolve o problema
törzsmókus
Parece que pode funcionar para um terminal linux real, mas infelizmente isso não é útil para usuários do PuTTY. Alguma outra alternativa?
Codesmith
1
@Codesmith Eu acredito que o comentário de Pawel Chioch na resposta aceita pode ser útil para você: serverfault.com/questions/731022/...
borrascador
1
Bom ponto @borrascador! Não tenho certeza de como eu perdi isso. Obrigado! :)
Codesmith
5

Antes de colar, digite um # e cole sua linha. Ele não será executado e você poderá remover o # e pressionar enter quando as modificações forem concluídas.

Lança
fonte
Você também pode usar o trueAKA :, que é basicamente um comando não operacional.
wjandrea
1
@WJAndrea Eu diria que isso é menos aconselhável, uma vez que eliminará o status de saída ( $?) ... truenão é realmente um nop, ele retorna o status de saída 0. Um comentário, por outro lado, é totalmente ignorado e, portanto, não será alterar $?.
Brhfl
4
isso apenas interrompe a execução da primeira linha . se OP colar um texto com pelo menos duas quebras de linha, elas serão parafusadas novamente.
törzsmókus