Perché a volte quando mi incollo un comando sul mio bash chiederà Viene eseguito anche se non premere INVIO?

StackOverflow https://stackoverflow.com/questions/857029

  •  21-08-2019
  •  | 
  •  

Domanda

Il comando vengono eseguiti senza la necessità di premere Invio. Questo può essere pericoloso a volte ...

Perché è questo e come posso evitarlo?

È stato utile?

Soluzione

Perché si incolla carattere new line con esso. A volte può essere utile, ad esempio, è possibile copiare / incollare molti comandi (script lungo multi-line) in una sola volta.

Bene, Non è mai venuto in mente di impedire questo comportamento particolare. E 'normale e previsto. WYPIWYG -. Quello che si incolla è quello che si ottiene

Altri suggerimenti

Si sta incollando uno o più caratteri di nuova riga. Altro che semplicemente non copiare e incollare caratteri di nuova riga ci sono alcune cose che puoi fare per risolvere questo:

  • Per i comandi a riga singola, digitare "#" prima, in modo che il comando sarà commentata. È quindi possibile tornare indietro e modificarlo.

  • Utilizza modifica-e-execute-comando funzione di (apparentemente poco noto) bash. Per richiamare lo si può colpire CTRL-x CTRL-e se si utilizza Emacs keybindings (impostazione predefinita) o ESC v se si utilizzano combinazioni di tasti di vi. Ciò richiamerà un editor di testo che contiene la riga di comando corrente. È quindi possibile incollare nell'editor, e modificare il comando. Una volta che si salva e chiude verrà eseguito il comando (s) salvato da l'editor (se si desidera interrompere o commentare tutte le linee o del tutto chiaro il buffer). È possibile impostare quale editor è usato sia con le variabili FCEDIT o EDITOR ambiente.

Un modo rapido per impedire l'esecuzione è quello di digitare il carattere di commento #, quindi incollare il comando.

faccio spesso perché ho fat-finger quando si copia e afferrare i caratteri estranei.

Quando si incolla dopo il carattere di commento, il comando è nel buffer storico ed è possibile modificarlo, decommentarla, ed eseguirlo.

--- Rispondi al commento

Hai ragione, questo funziona solo per linea singola comandi. Se si dispone di un multi-linea uno negli appunti, è possibile reindirizzare i dati degli Appunti tramite sed.

Stupido bash trucco # 4 milioni e uno:

prompt:$ xclip -o -selection clipboard | sed --regexp-extended 's/^(.*)$/# \1;/'

si trasformerà questo:

for i in *.JPG;

do echo mv $i ${i/.JPG/.jpg};

done;

in questo modo:

# for i in *.JPG;

# do echo mv $i ${i/.JPG/.jpg};

# done;

Il che non è davvero valsa la pena, ma un pò di divertimento;>

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top