Programování BASH

Bash if -e and -s a další operátory testování souborů

Bash if -e and -s a další operátory testování souborů

Při práci se soubory v libovolném operačním systému je povinné, aby uživatel tyto soubory otestoval z hlediska určitých aspektů, jako je jejich vlastnictví, přístupová práva, obsah, existence atd. Tyto aspekty lze zjistit spojením příkazu „if“ s různými operátory testování souborů v Bash. „If -e“ a „if -s“ jsou takové operátory v Bash, používané pro testování existence souboru. Rozdíl mezi nimi spočívá v tom, že první testuje pouze existenci souboru, zatímco druhý také kontroluje, zda v něm existuje nějaký obsah nebo ne. Dnes se pokusíme porozumět použití těchto dvou operátorů spolu s několika dalšími operátory testování souborů v Bash.

Poznámka: K demonstraci použití operátorů testování souborů v Bash jsme použili Linux Mint 20.

Příklady použití operátorů testování souborů v Bash

Existuje několik způsobů, jak lze použít operátory testování souborů „if -e“ a „if -s“. Abychom vysvětlili jejich použití, podělíme se s vámi o několik příkladů.

Příklad použití operátoru „if -e“

Chcete-li v Bash použít operátor „if -e“, musíte postupovat podle těchto kroků:

Nejprve jsme vytvořili prázdný textový soubor s názvem Test.txt v našem domovském adresáři. Pak jsme vytvořili bash soubor s názvem FileTestOperators.sh ve stejném adresáři. Po vytvoření tohoto souboru jsme do našeho souboru zadali skript zobrazený na následujícím obrázku. V tomto bash skriptu deklaroval proměnnou s názvem „soubor“ a přidělil jí náš textový soubor s názvem Test.txt jako jeho hodnota. Pak máme příkaz „if -e“, který vytváří výstup „true“, pokud existuje zadaný soubor.

Pro testování našeho skriptu jej spustíme pomocí níže uvedeného příkazu:

$ bash FileTestOperators.sh

V našem případě, protože textový soubor existoval, bude proto výstup našeho skriptu pravdivý, jak ukazuje následující obrázek:

Příklad použití operátoru „if -s“

Chcete-li použít operátor „if -s“ v Bash, měli byste provést kroky uvedené níže:

V tomto příkladu je náš bash skript stejný jako jsme použili výše. Právě jsme změnili příkaz „if -e“ na „if -s“. Také jsme použili stejný prázdný textový soubor Test.txt.

Nyní, když spustíme tento skript, bude výstup nepravdivý, protože operátor „if -s“ vrací true, pokud soubor existuje a také pokud není prázdný. Protože v našem případě, i když soubor existoval, byl stále prázdný, a proto se náš výstup ukázal jako nepravdivý, jak je znázorněno na následujícím obrázku:

Aby byl tento příznak pravdivý, napíšeme do našeho textového souboru nějaký fiktivní text, jak je znázorněno níže:

Potom znovu spustíme náš bash skript a tentokrát bude výstup pravdivý, jak je znázorněno na následujícím obrázku, protože textový soubor má nyní nějaký text.

Příklady použití dalších operátorů testování souborů

Kromě operátorů „if -e“ a „if -s“ existují i ​​další operátoři testování souborů. Níže s vámi sdílíme některé z nejdůležitějších operátorů testování souborů, které nejsou uvedeny výše.

Příklad použití operátoru „if -d“

Chcete-li v Bash použít operátor „if -d“, měli byste provést kroky uvedené níže:

V tomto příkladu je náš bash skript stejný jako jsme použili výše. Právě jsme změnili příkaz „if -s“ na „if -d“. Také jsme použili stejný textový soubor Test.txt.

Operátor „if -d“ vrací true, pokud je váš soubor adresář, jinak bude mít hodnotu false. Protože náš textový soubor nebyl adresářem, bude výstup nepravdivý, jak ukazuje následující obrázek:

Příklad použití operátoru „if -h“

Chcete-li v Bash použít operátor „if -h“, musíte postupovat podle těchto kroků:

V tomto příkladu je náš bash skript stejný, jaký jsme použili výše. Právě jsme změnili příkaz „if -d“ na „if -h“. Pro testování jsme však tentokrát použili jiný soubor, kterým byl ve skutečnosti symbolický odkaz s názvem NewBash.sh.

Operátor „if -h“ vrací true, pokud je váš soubor symbolickým odkazem, jinak bude nepravdivý. Protože náš testovací soubor byl symbolickým odkazem, bude výstup pravdivý, jak ukazuje následující obrázek:

Příklad použití operátoru „if -r“

Chcete-li v Bash použít operátor „if -r“, musíte postupovat podle těchto kroků:

V tomto příkladu je náš bash skript stejný, jaký jsme použili výše. Právě jsme změnili příkaz „if -h“ na „if -r“. Také jsme použili stejný textový soubor Test.txt.

Výstup operátoru „if -r“ bude pravdivý, pokud může aktuální uživatel soubor přečíst, jinak bude nepravdivý. Protože náš textový soubor byl čitelný námi, bude výstup pravdivý, jak ukazuje následující obrázek:

Stejným způsobem můžete použít operátory „if -w“ a „if -x“ ke kontrole, zda je soubor zapisovatelný a spustitelný aktuálním vlastníkem.

Příklad použití operátoru „if -O“

Pro použití operátoru „if -O“ v Bash byste měli provést kroky uvedené níže:

V tomto příkladu je náš bash skript stejný jako jsme použili výše. Právě jsme změnili příkaz „if -r“ na „if -O“. Také jsme použili stejný textový soubor Test.txt.

Výstup operátoru „if -O“ bude pravdivý, pokud soubor vlastní aktuální uživatel, jinak bude nepravdivý. Protože náš textový soubor vlastnili my, bude výstup pravdivý, jak ukazuje následující obrázek:

Závěr

Tento článek informoval čtenáře o použití různých operátorů testování souborů v Bash pomocí operačního systému Linux. Využitím těchto operátorů testování souborů je pro uživatele velmi výhodné pracovat se soubory bez jakýchkoli potíží. Existují i ​​další operátoři testování souborů, které lze použít pro různé účely. Nejčastěji se však používají ty, které jsou popsány v tomto článku.

Hry Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 vydané minulý měsíc, je šestým vývojovým vydáním v 1.13.série x a přináší řadu vylepšení, zejména do uživatelského rozhraní,...
Hry Jak nainstalovat League Of Legends na Ubuntu 14.04
Jak nainstalovat League Of Legends na Ubuntu 14.04
Pokud jste fanouškem League of Legends, pak je to pro vás příležitost otestovat běh League of Legends. Všimněte si, že LOL je podporován na PlayOnLinu...
Hry Nainstalujte si nejnovější strategickou hru OpenRA na Ubuntu Linux
Nainstalujte si nejnovější strategickou hru OpenRA na Ubuntu Linux
OpenRA je herní engine Libre / Free Real Time Strategy, který obnovuje rané hry Westwood, jako je klasický Command & Conquer: Red Alert. Distribuované...