¿Qué significa "ls" en Linux?

13

Escribí accidentalmente ls'y obtuve una interfaz interactiva: > ¿Qué es esto?

Intenté buscar en internet, no encontré nada.

Anders Lind
fuente

Respuestas:

34

Este comportamiento es independiente de la distribución. Había abierto una cita, el shell muestra $PS2una variable global ( $PS2está >en su salida) mientras falta la segunda cita.

Puedes cambiar PS2 con lo que quieras en su lugar:

Ex: export PS2=">>>"

El valor de $ PS2 se imprime (después de la expansión) como solicitud secundaria para obtener más datos cuando bash se ejecuta de forma interactiva. Ver man bash, en PROMPTING.

Gilles Quenot
fuente
2
Tienes buenos ojos para detectar la comilla simple perdida.
1
Información adicional: para salir, simplemente ingrese otra cotización simple o presione ctrl-c.
octern
No exactamente leyendo stdin; puede ingresar una cita de varias líneas en un script o algo así también; pero el indicador secundario se visualiza en una sesión interactiva cuando se introduce una nueva línea dentro de una cadena entre comillas, un bucle sin terminar, etc.
tripleee
1
Mejor use ctrl-d en lugar de ctrl-c como EOF (Fin del archivo)
Gilles Quenot
gracias, por cierto, ¿qué significa PS2?
Anders Lind
5
-bash-4.1$ ls'
>

significa que abre una cadena larga con 'y no la cierra, por lo que bash está esperando que la cadena (argumento) termine con'

Uso lssin ninguno 'al final.

Mateusz
fuente
0

"PS" significa (probablemente) "cadena de solicitud". PS1 es lo que el shell mostraría como el indicador de línea de comando del proceso de shell. PS2 se muestra cuando se requiere una entrada adicional para completar el comando (cadena sin comillas, lectura de stdin, etc.). man bashluego busque PS1 o PS2 ( /PS[12]<CR>)

aqn
fuente