Někdy při práci na příkazovém řádku Linuxu možná budete chtít otestovat určité věci, jako jsou celočíselné hodnoty nebo zda je soubor určitého typu? Budete rádi, že existuje vestavěný nástroj příkazového řádku test která vám umožní provádět většinu těchto srovnání a testů.
V tomto tutoriálu probereme základy tohoto nástroje pomocí několika snadno srozumitelných příkladů. Ale než to uděláme, stojí za zmínku, že všechny příklady v článku byly testovány na Ubuntu 16.04 LTS.
Testovací příkaz Linux
Jak již bylo zmíněno výše, příkaz test slouží k provádění kontrol a porovnávání. Zde je jeho syntaxe:
test EXPRESSION
A zde je to, co o tomto nástroji říká manuálová stránka:
test - check file types and compare values
Následuje několik příkladů ve stylu otázek a odpovědí, které by vám měly poskytnout dobrou představu o tom, jak nástroj funguje.
Poznámka :Mějte na paměti, že některé z možností příkazového řádku, které poskytuje test, jsou nejužitečnější při použití v rámci skriptů shellu.
Q1. Jak porovnat dva řetězce?
Jednoduché, stačí mezi nimi použít znaménko rovná se (=). Například:
test howto = forge
Lepší způsob by bylo napsat něco takového:
test howto = forge && echo "same"
Pokud jsou tedy řetězce stejné, mělo by být na výstupu vytištěno slovo „stejné“, jinak by se nemělo tisknout nic.
Podobně můžete použít následující šablonu, pokud chcete otestovat nerovnost.
STRING1 != STRING2
Q2. Jak porovnat celá čísla pomocí testu?
To je také velmi přímočaré - stačí je porovnat pomocí '-eq'. Například:
test 5 -eq 7 && echo "same"
Zde je snímek obrazovky ukazující, jak tato možnost příkazového řádku funguje:
Podobně můžete použít '-ge ' pro otestování větší nebo rovno '-gt ' pro větší než, '-le ' pro menší nebo rovno, '-lt ' pro méně než a '-ne ' pro nerovná se.
3. Jak testovat/porovnávat soubory pomocí testu?
Chcete-li otestovat, který z těchto dvou souborů je novější, použijte '-nt'. Například:
test file1 -nt file2
Zde je návod, jak jsem to testoval na svém systému:
Další porovnání souborů, která můžete provést, zahrnují, který z těchto dvou souborů je starší (-ot) a zda dva soubory mají stejná čísla zařízení a inodů (-ef).
Chcete-li zkontrolovat, zda je daný soubor adresářem, použijte volbu -d následujícím způsobem:
test -d [název souboru]
Například:
test -d nový_adresář
Níže jsou uvedeny některé další možnosti testu typu souboru, které příkaz 'test' nabízí:
4. Jak příkaz test zpracovává symbolické odkazy?
Příkaz test dereferencuje symbolické odkazy, i když existuje několik výjimek. Manová stránka o tom říká následující:
Except for -h and -L, all FILE-related tests dereference symboliclinks.
V případě, že si nejste vědomi, jak -h, tak -L zkontrolují, zda soubor existuje a jde o symbolický odkaz - takže jejich vyloučení dává smysl, ne?
Závěr
Příkaz test nabízí mnoho možností, ale obecně je můžete rozdělit do 3-4 kategorií. Ke každé kategorii jsme uvedli příklady. Vyzkoušejte je tedy a až budete hotovi, přejděte na stránku manuálu nástroje, kde najdete další informace.