Programovanie v jazyku BASH

Bash if -e and -s a ďalší operátori testovania súborov

Bash if -e and -s a ďalší operátori testovania súborov

Pri práci so súbormi v ľubovoľnom operačnom systéme je používateľ povinný tieto súbory testovať z hľadiska určitých aspektov, ako je napríklad ich vlastníctvo, prístupové práva, obsah, existencia atď. Tieto aspekty je možné zistiť spojením príkazu „if“ s rôznymi operátormi testovania súborov v Bashi. „If -e“ a „if -s“ sú v Bash také operátory, ktoré sa používajú na testovanie existencie súboru. Rozdiel medzi nimi spočíva v tom, že prvý testuje iba existenciu súboru, zatiaľ čo druhý tiež kontroluje, či v ňom nejaký obsah je alebo nie je. Dnes sa pokúsime porozumieť použitiu týchto dvoch operátorov spolu s niekoľkými ďalšími operátormi testovania súborov v Bashi.

Poznámka: Na demonštráciu použitia operátorov testovania súborov v Bashi sme použili Linux Mint 20.

Príklady použitia operátorov na testovanie súborov v Bashi

Existuje niekoľko spôsobov, ako možno použiť operátory testovania súborov „if -e“ a „if -s“. Aby sme vysvetlili ich použitie, podelíme sa s vami o niekoľko príkladov.

Príklad použitia operátora „if -e“

Ak chcete používať operátor „if -e“ v Bashi, musíte postupovať podľa týchto krokov:

Najskôr sme vytvorili prázdny textový súbor s názvom Test.txt v našom domovskom adresári. Potom sme vytvorili bash súbor s názvom FileTestOperators.sh v rovnakom adresári. Po vytvorení tohto súboru sme do nášho súboru zadali skript uvedený na nasledujúcom obrázku. V tomto bash skripte deklaroval premennú s názvom „súbor“ a priradil jej náš textový súbor s názvom Test.txt ako jeho hodnota. Potom máme príkaz „if -e“, ktorý produkuje „pravý“ výstup, ak existuje zadaný súbor.

Na testovanie nášho skriptu ho spustíme pomocou príkazu uvedeného nižšie:

$ bash FileTestOperators.š

V našom prípade, pretože textový súbor existoval, preto bude výstup nášho skriptu pravdivý, ako je znázornené na nasledujúcom obrázku:

Príklad použitia operátora „if -s“

Ak chcete používať operátor „if -s“ v Bash, mali by ste vykonať kroky uvedené nižšie:

V tomto príklade je náš bash skript rovnaký, ako sme použili vyššie. Práve sme zmenili výrok „if -e“ na „if -s“. Použili sme tiež ten istý prázdny textový súbor Test.TXT.

Teraz, keď spustíme tento skript, bude výstup nepravdivý, pretože operátor „if -s“ vráti hodnotu true, ak súbor existuje a tiež ak nie je prázdny. Pretože v našom prípade, hoci súbor existoval, bol stále prázdny, a preto sa náš výstup ukázal ako nepravdivý, ako je to znázornené na nasledujúcom obrázku:

Aby bol tento príznak pravdivý, napíšeme do nášho textového súboru fiktívny text, ako je uvedené nižšie:

Potom znova spustíme náš bash skript a výstup bude tentoraz pravdivý, ako je znázornené na nasledujúcom obrázku, pretože textový súbor má teraz nejaký text.

Príklady použitia iných operátorov na testovanie súborov

Okrem operátorov „if -e“ a „if -s“ existujú aj ďalší operátori testovania súborov. Ďalej sa s vami podelíme o niektorých najdôležitejších operátorov testovania súborov, ktorí nie sú uvedení vyššie.

Príklad použitia operátora „if -d“

Pri použití operátora „if -d“ v aplikácii Bash by ste mali vykonať kroky uvedené nižšie:

V tomto príklade je náš bash skript rovnaký, ako sme použili vyššie. Práve sme zmenili vyhlásenie „if -s“ na „if -d“. Použili sme tiež ten istý textový súbor Test.TXT.

Operátor „if -d“ vráti true, ak je váš súbor adresár, inak bude nepravdivý. Pretože náš textový súbor nebol adresárom, výstup bude nepravdivý, ako ukazuje nasledujúci obrázok:

Príklad použitia operátora „if -h“

Ak chcete v Bash používať operátor „if -h“, musíte postupovať podľa týchto krokov:

V tomto príklade je náš bash skript rovnaký, ako sme použili vyššie. Práve sme zmenili príkaz „if -d“ na „if -h“. Na testovanie sme však tentokrát použili iný súbor, ktorým bol v skutočnosti symbolický odkaz s názvom NewBash.š.

Operátor „if -h“ vráti hodnotu true, ak je váš súbor symbolickým odkazom, inak bude nepravdivý. Pretože náš testovací súbor bol symbolickým odkazom, bude výstup pravdivý, ako ukazuje nasledujúci obrázok:

Príklad použitia operátora „if -r“

Ak chcete používať operátor „if -r“ v Bashi, musíte postupovať podľa týchto krokov:

V tomto príklade je náš bash skript rovnaký, ako sme použili vyššie. Práve sme zmenili výrok „if -h“ na „if -r“. Použili sme tiež ten istý textový súbor Test.TXT.

Výstup operátora „if -r“ bude pravdivý, ak môže aktuálny používateľ súbor prečítať, inak bude nepravdivý. Pretože náš textový súbor bol čitateľný nami, bude výstup pravdivý, ako je znázornené na nasledujúcom obrázku:

Rovnakým spôsobom môžete pomocou operátorov „if -w“ a „if -x“ skontrolovať, či je súbor aktuálnym vlastníkom zapisovateľný a spustiteľný.

Príklad použitia operátora „if -O“

Pre použitie operátora „if -O“ v Bash by ste mali vykonať kroky uvedené nižšie:

V tomto príklade je náš bash skript rovnaký, ako sme použili vyššie. Práve sme zmenili príkaz „if -r“ na „if -O“. Použili sme tiež ten istý textový súbor Test.TXT.

Výstup operátora „if -O“ bude pravdivý, ak súbor vlastní aktuálny používateľ, inak bude nepravdivý. Pretože náš textový súbor bol vo vlastníctve nás, bude výstup pravdivý, ako je znázornené na nasledujúcom obrázku:

Záver

Tento článok informoval čitateľa o použití rôznych operátorov testovania súborov v systéme Bash pomocou operačného systému Linux. Využitím týchto operátorov testovania súborov je pre používateľa veľmi výhodné pracovať so súbormi bez akýchkoľvek potenciálnych ťažkostí. Existuje aj niekoľko ďalších operátorov testovania súborov, ktorí sa dajú použiť na rôzne účely. Najčastejšie sa však používajú tie, o ktorých sa hovorí v tomto článku.

Ako používať Xdotool na stimuláciu kliknutí a stlačenia myši v systéme Linux
Xdotool je bezplatný a otvorený nástroj príkazového riadku na simuláciu kliknutí a stlačenia klávesov myši. Tento článok sa bude týkať stručného sprie...
Top 5 ergonomických produktov pre počítačové myši pre Linux
Spôsobuje dlhodobé používanie počítača bolesť zápästia alebo prstov? Trpíte stuhnutými kĺbmi a neustále si musíte podávať ruky? Cítite pálivú bolesť z...
Ako zmeniť nastavenie myši a touchpadu pomocou systému Xinput v systéme Linux
Väčšina distribúcií systému Linux sa štandardne dodáva s knižnicou „libinput“ na spracovanie vstupných udalostí v systéme. Dokáže spracovať vstupné ud...