El comando se ejecuta sin necesidad de presionar Enter. Esto puede ser peligroso a veces ...¿Por qué a veces, cuando pego un comando en mi prompt bash, se ejecuta incluso si no presiono Enter?
¿Por qué es así y cómo puedo evitarlo?
El comando se ejecuta sin necesidad de presionar Enter. Esto puede ser peligroso a veces ...¿Por qué a veces, cuando pego un comando en mi prompt bash, se ejecuta incluso si no presiono Enter?
¿Por qué es así y cómo puedo evitarlo?
Porque pega un nuevo carácter de línea con él. A veces puede ser útil, por ejemplo, puede copiar/pegar muchos comandos (largos guiones de varias líneas) a la vez.
Bueno, nunca me ha ocurrido evitar este comportamiento en particular. Es normal y esperado. WYPIWYG: lo que pegas es lo que obtienes.
Una forma rápida de evitar la ejecución es escribir el carácter de comentario #, luego pegue el comando.
A menudo hago eso porque con los dedos gordos copio y agarro caracteres extraños.
Cuando pega después del carácter de comentario, el comando está en el búfer de historial y puede editarlo, descomentarlo y ejecutarlo.
--- Responder al comentario
Tienes razón, esto sólo funciona para una sola línea de comandos. Si tiene una línea múltiple en el portapapeles, puede canalizar los datos del portapapeles a través de sed.
fiesta estúpido truco # 4 millones y uno:
prompt:$ xclip -o -selection clipboard | sed --regexp-extended 's/^(.*)$/# \1;/'
a su vez, esto:
for i in *.JPG;
do echo mv $i ${i/.JPG/.jpg};
done;
en esto:
# for i in *.JPG;
# do echo mv $i ${i/.JPG/.jpg};
# done;
Lo que realmente no vale la pena el esfuerzo, pero un poco divertido;>
Ideal para comandos de una sola línea, pero si se trata de una línea múltiple, la primera instrucción no se ejecutará, pero el resto todavía lo hará. – Andy
se disponga a pegar uno o más caracteres de nueva línea . Otros que simplemente no copiar y pegar los caracteres de nueva línea, hay algunas cosas que puede hacer para evitar este:
para los comandos de una sola línea, tipo "#" en primer lugar, por lo que el comando debe ser comentadas. Luego puede volver a subir y editarlo.
uso de bash (aparentemente poco conocido) edición-y-ejecutar-comando función. Para invocarlo, puede presionar CTRL-x
CTRL-e
si usa las combinaciones de teclas de emacs (por defecto) o ESC v
si usa las combinaciones de teclas vi. Esto invocará un editor de texto que contiene su línea de comando actual. Luego puede pegar en el editor y editar el comando.Una vez que guarde y salga, se ejecutarán los comandos guardados por el editor (si desea cancelar, puede comentar todas las líneas o borrar completamente el búfer). Puede establecer qué editor se utiliza con las variables de entorno FCEDIT
o EDITOR
.
Entonces, si el nuevo carácter de línea está al final de la línea, ¿se estaría copiando todo excepto el último carácter? –
Sí, eso debería ser obvio. –