GNU/Linux >> Linux Esercitazione >  >> Linux

Cosa significa ` (backquote/backtick) nei comandi?

Mi sono imbattuto nel seguente comando:

sudo chown `id -u` /somedir

e mi chiedo:qual è il significato del ` simbolo. Ho notato ad esempio che mentre il comando sopra funziona bene, quello sotto non lo fa:

sudo chown 'id -u' /somedir

Risposta accettata:

Questo è un backtick . Un backtick non è un segno di virgoletta. Ha un significato molto speciale. Tutto ciò che scrivi tra i backtick viene valutato (eseguito) dalla shell prima del comando principale (come chown nei tuoi esempi) e l'output di quell'esecuzione viene utilizzato da quel comando, proprio come se dovessi digitare quell'output in quel punto della riga di comando.

Allora, cosa

sudo chown `id -u` /somedir

funziona in modo efficace (a seconda del ID utente ) è:

sudo chown 1000 /somedir
                
                 `-- the second argument to "chown" (target directory)
             `-- your user ID, which is the output of "id -u" command
         `-- "chown" command (change ownership of file/directory)
      `-- the "run as root" command; everything after this is run with root privileges

Dai un'occhiata a questa domanda per scoprire perché, in molte situazioni, non è una buona idea usare i backtick.

A proposito, se mai volessi usare letteralmente un backtick, ad es. in una stringa, puoi sfuggire inserendo una barra rovesciata ( ) prima di esso.


Linux
  1. Cosa significa "-" (doppio trattino)?

  2. Cosa significa "rm is hash"?

  3. Cosa fa . ~/.bashrc Comando Fare??

  4. Cosa significa questo avviso?

  5. Cosa significa rc nei file punto

Cosa significa chmod 777

Cosa significa Cat Command in Linux?

Cosa significa essere "sh compatibile"?

Nessuna variabile DISPLAY X11 - cosa significa?

Cosa succede se [[ $? -ne 0 ]]; significa in .ksh

Cosa significa #define X X?