GNU/Linux >> Znalost Linux >  >> Linux

Co znamená ` (backquote/backtick) v příkazech?

Narazil jsem na následující příkaz:

sudo chown `id -u` /somedir

a zajímalo by mě:jaký je význam ` symbol. Všiml jsem si například, že zatímco výše uvedený příkaz funguje dobře, ten níže ne:

sudo chown 'id -u' /somedir

Přijatá odpověď:

Toto je backtick . Zpětné zaškrtnutí není znak uvozovek. Má velmi zvláštní význam. Vše, co napíšete mezi zpětnými zatrženími, je vyhodnoceno (spouštěno) shellem před hlavním příkazem (jako chown ve vašich příkladech) a výstup tohoto spuštění je použito tímto příkazem, stejně jako kdybyste zadali tento výstup na dané místo v příkazovém řádku.

Tak co

sudo chown `id -u` /somedir

efektivně běží (v závislosti na vašem ID uživatele ) je:

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

Podívejte se na tuto otázku a zjistěte, proč v mnoha situacích není dobrý nápad používat zpětné zatáčky.

Btw, pokud jste někdy chtěli použít backtick doslova, např. v řetězci, můžete jej uniknout umístěním zpětného lomítka ( ) před tím.


Linux
  1. Co toto varování znamená?

  2. Co znamená &na konci linuxového příkazu?

  3. Co znamená - v tomto linuxovém příkazu?

  1. Co dělá . ~/.bashrc Příkaz Udělat??

  2. Co znamená syntaxe |&v jazyce shellu?

  3. Co znamená zabít -3?

  1. Co znamená „–“ (dvojitá pomlčka)?

  2. Co znamená velikost adresáře ve výstupu příkazu „ls -l“?

  3. Co znamená `chown Root.root $file`?