Perché a volte quando mi incollo un comando sul mio bash chiederà Viene eseguito anche se non premere INVIO?
-
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?
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) oESC 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 variabiliFCEDIT
oEDITOR
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;>