Va bene, quando eseguo alcuni comandi nel modo sbagliato, (errato, ecc.) Il terminale emette questo: >
invece di computername:workingfolder username$
, e quando scrivo entra va così:
>
>
>
Sarebbe se premessi Invio 3 volte.
Va bene, quando eseguo alcuni comandi nel modo sbagliato, (errato, ecc.) Il terminale emette questo: >
invece di computername:workingfolder username$
, e quando scrivo entra va così:
>
>
>
Sarebbe se premessi Invio 3 volte.
Risposte:
>
è il prompt di continuazione predefinito. Ecco cosa vedrai se ciò che hai inserito prima aveva virgolette sbilanciate.
Ad esempio, digitare una virgoletta singola sulla riga di comando seguita da alcuni enter
tasti:
$ '
>
>
>
Le richieste di continuazione si verificheranno fino a quando non lo farai
(a) completare il comando con un segno di virgoletta di chiusura
o
(b) digitare Ctrl+ Dper terminare l'input, a quel punto la shell risponderà con un messaggio di errore relativo alle virgolette non bilanciate,
o
(c) digitare Ctrl+ Cche interromperà il comando che si stava inserendo.
A volte, potresti voler inserire una stringa che contiene nuove righe incorporate. Puoi farlo come segue:
$ paragraph='first line
> second line
> third line
> end'
Ora, quando visualizziamo quella variabile di shell, puoi vedere che i prompt sono scomparsi ma le nuove righe vengono mantenute:
$ echo "$paragraph"
first line
second line
third line
end
Ciò accadrà se hai un preventivo non chiuso nel tuo comando. È qualcosa del tipo:
$ echo "test here
>
>
...
Puoi uscire da quella modalità chiudendo il preventivo (scrivi un "
o '
, o qualunque sia il tuo preventivo aperto). Potrebbe anche essere un blocco delimitato da parentesi graffe, un parzialmente completo for-do
o while-do
loop, o alcuni altri costrutti. Puoi anche premere Ctrl-Cper annullare questo comando (quindi premere Upper modificarlo).
Questo a volte può accadere senza un'ovvia citazione mancante quando si verificano espansioni di parametri o cronologia dove non te le aspettavi.
Il >
è il vostro PS2
valore ( "secondario prompt"). Puoi cambiarlo in qualcos'altro per ricordarti cosa è successo:
PS2="Unclosed >"
nel tuo .bashrc
lo farai invece stampare Unclosed >
all'inizio di ogni riga.
Oltre alle altre risposte, viene visualizzato anche il prompt di continuazione quando si digita a \
come l'ultimo carattere su una riga.
La risposta si trova in questa criptica menzione nel Manuale di riferimento di Bash :
5.1 Variabili Bourne Shell
[...]
PS1
: La stringa del prompt principale. Il valore predefinito è '\s-\v\$
'. Vedere Stampa di un prompt , per visualizzare l'elenco completo delle sequenze di escape espanse prima dellaPS1
visualizzazione.PS2
: La stringa del prompt secondario. Il valore predefinito è '>
'.
... seguito da :
6.3.3 Comportamento interattivo della shell
- Bash si espande e viene visualizzato
PS1
prima di leggere la prima riga di un comando e si espande e viene visualizzatoPS2
prima di leggere la seconda e le successive righe di un comando multilinea.
Quindi, il >
prompt appare se si preme Entere Bash determina che il comando è incompleto. Ciò potrebbe essere dovuto al fatto che:
\
, che viene trattato come una continuazione di riga .$()
, ()
, ``
.for
loop, un while
loop o un case
.Se visualizzi il prompt secondario a causa di un errore di battitura non intenzionale, premi ControlCper tornare al prompt primario.