Si presionas C-x C-e
comando que abrirá su editor predeterminado que definió .bashrc
, después de eso, puede usar todas las potentes funciones de su editor. Cuando guarde y salga, las líneas esperarán su entrada.
Si desea definir su editor, simplemente escriba para Ex. EDITOR=emacs -nw
o EDITOR=vi
dentro de ~/.bashrc
Intenta poner \
al final de cada línea antes de copiarla.
Ejemplo:
echo "Hello world" && \
script_b.sh
echo $?
El código de salida ($?
) es ahora la secuencia completa de comandos, y no solo el último comando.
Estoy realmente sorprendido de que esta respuesta no se ofrezca aquí, estaba buscando una solución a esta pregunta y creo que este es el enfoque más fácil y más flexible/perdonador...
Si desea pegar varias líneas desde un sitio web/editor de texto/etc., en bash, independientemente de si se trata de comandos por línea o una función o secuencia de comandos completa... simplemente comience con un (
y terminar con un )
y Enter, como en el siguiente ejemplo:
Si tuviera el siguiente blob
function hello {
echo Hello!
}
hello
Puede pegar y verificar en una terminal usando bash por:
-
Comenzando con
(
-
Pegar tu texto y presionar Enter (para hacerlo bonito)... o no
-
Terminando con un
)
y presionando Entrar
Ejemplo:
imac:~ home$ ( function hello {
> echo Hello!
> }
> hello
> )
Hello!
imac:~ home$
El texto pegado continúa automáticamente con un prefijo >
para cada línea. He probado con varias líneas con comandos por línea, funciones y scripts completos. ¡Espero que esto ayude a otros a ahorrar algo de tiempo!
Además de la barra invertida, si una línea termina con |
o &&
o ||
, continuará en la siguiente línea.