Muy bien, cuando ejecuto ciertos comandos de la manera incorrecta, (mal escrito, etc.) El terminal genera esto: en >
lugar de computername:workingfolder username$
, y cuando escribo enter, es así:
>
>
>
Eso sería si presiono enter 3 veces.
Muy bien, cuando ejecuto ciertos comandos de la manera incorrecta, (mal escrito, etc.) El terminal genera esto: en >
lugar de computername:workingfolder username$
, y cuando escribo enter, es así:
>
>
>
Eso sería si presiono enter 3 veces.
Respuestas:
>
es el mensaje de continuación predeterminado. Eso es lo que verá si lo que ingresó antes tenía comillas desequilibradas.
Como ejemplo, escriba una comilla simple en la línea de comando seguida de algunas enter
teclas:
$ '
>
>
>
Las indicaciones de continuación ocurrirán hasta que usted
(a) complete el comando con una comilla de cierre
o
(b) escriba Ctrl+ Dpara finalizar la entrada, en cuyo punto el shell responderá con un mensaje de error sobre las comillas desequilibradas,
o
(c) escriba Ctrl+ Cque anulará el comando que estaba ingresando.
En algún momento, es posible que desee ingresar una cadena que contenga nuevas líneas incrustadas. Puede hacerlo de la siguiente manera:
$ paragraph='first line
> second line
> third line
> end'
Ahora, cuando mostramos esa variable de shell, puede ver que las indicaciones han desaparecido pero las nuevas líneas se mantienen:
$ echo "$paragraph"
first line
second line
third line
end
Eso sucederá si tiene una cotización no cerrada en su comando. Eso es algo como:
$ echo "test here
>
>
...
Puede salir de ese modo cerrando la cotización (escriba un "
o '
, o lo que sea su cotización abierta). También podría ser un bloque delimitado por llaves, un bucle parcialmente completo for-do
o un while-do
bucle, o ciertas otras construcciones. También puede presionar Ctrl-Cpara cancelar este comando (luego presione Uppara revisarlo).
Esto a veces puede suceder sin una cita obvia que falta cuando se producen expansiones de parámetros o historial donde no las esperaba.
El >
es su valor PS2
("solicitud secundaria"). Puede cambiar eso a otra cosa para recordarle lo que sucedió:
PS2="Unclosed >"
en su .bashrc
voluntad hará que se imprima Unclosed >
al comienzo de cada línea.
Además de las otras respuestas, también obtiene el mensaje de continuación cuando escribe un \
como último carácter en una línea.
La respuesta se encuentra en esta mención críptica en el Manual de referencia de Bash :
5.1 Variables de Bourne Shell
[...]
PS1
: La cadena de solicitud principal. El valor predeterminado es '\s-\v\$
'. Consulte Impresión de una solicitud , para ver la lista completa de secuencias de escape que se expanden antes de quePS1
se muestre.PS2
: La cadena de solicitud secundaria. El valor predeterminado es '>
'.
... seguido de :
6.3.3 Comportamiento interactivo de Shell
- Bash se expande y muestra
PS1
antes de leer la primera línea de un comando, y se expande y muestraPS2
antes de leer la segunda línea y las siguientes de un comando de varias líneas.
Entonces, el >
mensaje aparece si presiona Entery Bash determina que el comando está incompleto. Eso podría ser porque:
\
, que se trata como una continuación de línea .$()
, ()
, ``
.for
bucle, un while
bucle o un case
.Si está viendo el mensaje secundario debido a un error de escritura involuntario, presione ControlCpara regresar al mensaje primario.