Il comando viene eseguito senza la necessità di premere Invio. Questo può essere pericoloso a volte ...Perché a volte quando incollo un comando sul mio prompt di bash viene eseguito anche se non premo Invio?
Perché è e come posso prevenirlo?
Il comando viene eseguito senza la necessità di premere Invio. Questo può essere pericoloso a volte ...Perché a volte quando incollo un comando sul mio prompt di bash viene eseguito anche se non premo Invio?
Perché è e come posso prevenirlo?
Perché si incolla un nuovo carattere di linea con esso. A volte può essere utile, ad esempio, è possibile copiare/incollare molti comandi (lunghi script multi-linea) contemporaneamente.
Bene, non mi è mai venuto in mente di impedire questo particolare comportamento. È normale e previsto. WYPIWYG: ciò che si incolla è ciò che si ottiene.
Un modo rapido per impedire l'esecuzione è digitare il carattere di commento #, quindi incollare il comando.
Lo faccio spesso perché ho il dito grasso quando copio e afferro caratteri estranei.
Quando si incolla dopo il carattere di commento, il comando si trova nel buffer della cronologia ed è possibile modificarlo, decommentarlo ed eseguirlo.
--- Rispondi al commento
Hai ragione, questo funziona solo per linea singola comandi. Se si dispone di una multi-linea 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:
# for i in *.JPG;
# do echo mv $i ${i/.JPG/.jpg};
# done;
che non è davvero valsa la pena, ma un pò di divertimento;>
Ottimo per i comandi a linea singola, ma se si tratta di una linea multipla, la prima istruzione non verrà eseguita, ma il resto continuerà a funzionare. – Andy
incolli uno o più caratteri di nuova riga . Altri che semplicemente non copiando e incollando caratteri di nuova riga ci sono alcune cose che potete fare per ovviare a questo:
per i comandi a riga singola, digitare "#" prima, in modo che il comando sarà commentate. Puoi quindi tornare indietro e modificarlo.
Utilizzare la funzione edit-and-execute-command di bash (apparentemente poco conosciuta). Per invocarlo è possibile premere CTRL-x
CTRL-e
se si utilizzano le combinazioni di tasti emacs (impostazione predefinita) o ESC v
se si utilizzano le combinazioni di tasti vi. Questo invocherà un editor di testo contenente la tua attuale riga di comando. È quindi possibile incollare nell'editor e modificare il comando.Una volta salvati e abbandonati, i comandi salvati dall'editor verranno eseguiti (se si desidera interrompere o commentare tutte le righe o cancellare completamente il buffer). È possibile impostare quale editor è utilizzato con le variabili di ambiente FCEDIT
o EDITOR
.
Quindi, se il carattere della nuova riga si trova alla fine della riga, una soluzione potrebbe essere la copia di tutto tranne l'ultimo carattere? –
Sì, dovrebbe essere ovvio. –