GNU/Linux >> Linux Esercitazione >  >> Linux

Qual è lo scopo di cd ` (backtick)?

Quello che hai digitato è un apice inverso:è l'inizio di un'istruzione a bash per valutare ciò che digiti come comando. Il > viene visualizzato per indicare che si sta ancora immettendo il comando nella riga successiva.

Se chiudi il backtick scoprirai che verrà eseguito l'intero comando. Ad esempio

~$ cd `
> echo /var`
/var$

La risposta di JohnC spiega già il backtick. Ma quello che ti stai anche chiedendo è il > richiesta. Questo è un prompt di continuazione e non viene attivato solo da un apice inverso, ma sempre quando la tua shell sa chiaramente che non hai finito di inserire un comando. L'esempio più semplice è inserire una continuazione di riga esplicita \ alla fine di una riga di input (che aiuta a suddividere l'input lungo):

$ echo \
> hallo

Nota che proprio come PS1 controlla l'aspetto del prompt dei comandi, puoi anche impostare PS2 per modificare il prompt di continuazione, ad es.

$ export PS2="(cont.) "
$ echo \
(cont.) hallo

Ci sono molte ragioni per cui si verifica la continuazione. Un singolo apice inverso è incompleto, ma potresti anche inserire qualcosa come

ls -l `which cp`

in una singola riga (nota a margine:si consiglia di utilizzare $( e ) invece, poiché le parentesi rendono ovvio dove inizia e finisce l'espansione, mentre i singoli apici inversi rendono più difficile vedere dove manca. E nidificazione...). Altre possibili ragioni per una richiesta di continuazione:

  • un done mancante dopo while o for
  • un fi mancante dopo un if
  • un esac mancante dopo case
  • una parentesi di chiusura mancante, ad es. nelle subshell (cd $HOME; cat .bashrc)
  • un comando mancante dopo il piping | così come l'esecuzione condizionale || e && (non & però, dal momento che questo significa solo eseguire il comando in background)
  • virgoletta di chiusura mancante (' o " )

Curiosamente, una parentesi graffa mancante } dopo un'espansione variabile ${ provoca anche una richiesta di continuazione, ma fallirà a causa dello spazio inserito:

$ echo ${
> PS2}
bash: ${
PS2}: bad substitution

Significa che il tuo comando non è ancora completo. Infatti, il carattere backtick, ` , viene utilizzato per delimitare un comando in linea.

Esempio:

cd /tmp # Go to /tmp
pwd # Prints the current working  directory
ls `pwd` # Lists the content of the current working directory

Linux
  1. Qual è lo scopo dell'utente "mysql.sys@localhost".

  2. Qual è lo scopo del file .bashrc in Linux

  3. Qual è il comando albero in Ubuntu?

  4. Qual è la magia di - (un trattino) nei parametri della riga di comando?

  5. Cosa dovrebbe fare il comando export in Linux?

Cos'è il comando Linux Watch + Esempi

Useradd vs Adduser:qual è la differenza?

Qual è il comando kill in Linux?

useradd vs. adduser:quali sono le differenze?

Qual è l'utilità della riga di comando del DNS inverso?

Qual è lo scopo della directory setgid?