GNU/Linux >> Znalost Linux >  >> Linux

Symbol backtick (`) v Linux Shell Scripting

Jednou z nejužitečnějších vlastností skriptů shellu je znak nízké uvozovky, obvykle nazývaný backtick (`) ve světě Linuxu. Buďte opatrní – nejedná se o normální znak jednoduché uvozovky, který jste zvyklí používat pro řetězce. Protože se mimo skripty shellu příliš často nepoužívá, možná ani nevíte, kde jej na klávesnici najít. Měli byste se s ním seznámit, protože je klíčovou součástí mnoha skriptů shellu.

Nápověda :Na americké klávesnici je obvykle na stejné klávese jako symbol vlnovky ( ∼ ).

Backtick umožňuje přiřadit výstup příkazu shellu proměnné. I když se to nezdá, je to hlavní stavební kámen v programování skriptů. Celý příkaz příkazového řádku musíte ohraničit znaky backtick:

# testing=`date`

Shell spustí příkaz v rámci backticks a přiřadí výstup proměnné testování. Zde je příklad vytvoření proměnné pomocí výstupu z normálního příkazu shellu:

$ cat myscript.sh
#!/bin/bash
# using the backtick character
testing=`date`
echo "The date and time are: $testing"
$

Testování proměnné přijímá výstup z příkazu date a používá se v příkazu echo k jeho zobrazení. Spuštění skriptu shellu vytvoří následující výstup:

$ chmod u+x myscript.sh
$ ./myscript.sh
The date and time are: Mon Jul 21 09:13:42 IST 2014
$

V tomto příkladu to není až tak vzrušující (příkaz můžete stejně snadno vložit do příkazu echo), ale jakmile zachytíte výstup příkazu do proměnné, můžete s tím dělat cokoli.

Zde je oblíbený příklad toho, jak se zpětné zaškrtnutí používá k zachycení aktuálního data a jeho použití k vytvoření jedinečného souboru ve skriptu:

#!/bin/bash
# copy the /usr/bin directory listing to a log file
today=`date +%y%m%d`
ls /usr/bin -al > /tmp/log.$today

Proměnná dnes je přiřazena k výstupu příkazu formátovaného data. Toto je běžná technika používaná k extrahování informací o datu pro názvy souborů protokolu. Formát +%y%m%d dává příkazu datum pokyn k zobrazení data jako dvoumístného roku, měsíce a dne:

$ date +%y%m%d
140721
$

Skript přiřadí hodnotu proměnné, která se pak použije jako součást názvu souboru. Samotný soubor obsahuje přesměrovaný výstup výpisu adresáře. Po spuštění skriptu byste měli vidět nový soubor v adresáři /tmp:

$ ls -l /tmp/log.140721 
-rw-rw-r-- 1 geek geek 116755 Jul 21 09:21 /tmp/log.140721

Soubor protokolu se objeví v adresáři s hodnotou proměnné $today jako součást názvu souboru. Obsahem souboru protokolu je výpis adresáře z adresáře /usr/bin. Pokud je skript spuštěn další den, název souboru protokolu bude belog.140722, čímž se vytvoří nový soubor pro nový den.


Linux
  1. 10 Praktické příklady příkazů Linux nm

  2. Změna výchozího prostředí v Linuxu

  3. Linux:nastavte datum pomocí příkazového řádku

  1. 8 Příklady příkazů rychlého data v Linuxu

  2. Příklady příkazů date v Linuxu

  3. Příklady příkazů chsh v Linuxu

  1. 25 Otázky a odpovědi k rozhovoru se skriptováním Linux Shell

  2. Příkaz Date v Linuxu

  3. Skriptování Linuxu:hexadecimální číslo na binární řetězec