Programování BASH

Bash „if -z“ a „if -n“ pro testování řetězců

Bash „if -z“ a „if -n“ pro testování řetězců

Příkaz „if“ v Bash lze použít s různými parametry, aby sloužil více účelům. Kdykoli pracujeme s řetězci v Bash, je pro nás velmi důležité zkontrolovat, zda je řetězec null nebo ne, aby nemohl způsobit žádný problém při provádění našeho programu. Příznaky „-z“ i „-n“ lze použít s příkazem „if“ k testování řetězců a v dnešním článku vám vysvětlíme, jak toho lze dosáhnout.

Poznámka: Linux Mint 20 se používá k testování následujících příkladů.

Metoda použití Bash „if -z“ a „if -n“ pro testování řetězců

Abychom vysvětlili použití Bash „if -z“ a „if -n“ pro testování řetězců, rádi bychom s vámi sdíleli následující ukázkové scénáře.

Příklad č. 1: Použití „if -n“ k prokázání, že řetězec má hodnotu Null

Abychom ukázali, že řetězec v Bash je null pomocí příkazu „if -n“, provedeme následující kroky:

Nejprve vytvoříme soubor Bash v našem domovském adresáři s názvem Strings.sh, jak je znázorněno na obrázku níže:

Po vytvoření tohoto souboru napíšeme do našeho souboru skript zobrazený na následujícím obrázku. Jako každý skript Bash, první řádek, tj.E. „#!/ bin / bash, “je povinné. Pak jsme deklarovali nulový řetězec s názvem „name“. Nulový řetězec v Bash lze deklarovat ekvalizací proměnné na „“. Pak máme příkaz „if“ následovaný příznakem „-n“, který vrací true, pokud řetězec nemá hodnotu null. Tento příznak jsme použili k otestování našeho řetězce „name“, který je nulový. Znamená to, že podmínka „if“ nebude provedena, protože hodnota parametru „-n“ bude v tomto případě nepravdivá. Proto máme také část „else“, která se provede vytištěním zprávy na terminálu.

Nyní je čas tento soubor spustit, což lze provést pomocí níže uvedeného příkazu:

$ bash řetězce.sh

Vzhledem k tomu, že řetězec, který jsme deklarovali, byl null, proto byla provedena část „else“ našeho skriptu a odpovídající zpráva byla vytištěna na terminálu, jak je znázorněno na následujícím obrázku:

Příklad č. 2: Použití „if -n“ k prokázání, že řetězec nemá hodnotu Null

Abychom ukázali, že řetězec v Bash není null pomocí příkazu „if -n“, provedeme následující kroky:

Do našeho souboru Bash napíšeme následující skript. Jedinou změnou, kterou jsme provedli ve skriptu, který jsme vytvořili výše pro tento scénář, je to, že jsme tentokrát přiřadili řetězci „name“ platné jméno. Znamená to, že náš řetězec tentokrát nemá hodnotu null, což znamená, že by měla být provedena část skriptu „if“.

Nyní spusťte skript ještě jednou a všimnete si, že náš upravený skript funguje přesně tak, jak jsme chtěli, spuštěním části skriptu „if“ tentokrát, jak je znázorněno na obrázku níže:

Příklad č. 3: Použití „if -z“ k prokázání, že řetězec nemá hodnotu Null

Abychom ukázali, že řetězec v Bash není null pomocí příkazu „if -z“, provedeme následující kroky:

Skript pro tento scénář je téměř stejný jako pro scénář popsaný výše. Nahradili jsme pouze příznak „-n“ příznakem „-z“, ale tentokrát jsme také vyměnili části „if“ a „else“ skriptu, protože příznak „-z“ vrací true, pokud řetězec je null. To znamená, že tentokrát bude část skriptu „else“ provedena, protože náš řetězec nebyl null.

Můžete to ověřit spuštěním skriptu, který jste právě upravili, a uvidíte, že váš řetězec nebyl null, jak je znázorněno na obrázku níže:

Příklad č. 4: Použití „if -z“ k prokázání, že řetězec má hodnotu Null

Abychom ukázali, že řetězec v Bash je null pomocí příkazu „if -z“, provedeme následující kroky:

Pro tento scénář jsme použili stejný skript jako pro příklad č. 3. Jedinou změnou, kterou jsme v tomto skriptu provedli, je to, že jsme náš řetězec nastavili na null tak, že jsme mu přiřadili hodnotu null, jak vidíte na obrázku níže:

Když nyní spustíme tento skript, část skriptu „if“ bude spuštěna, protože řetězec má hodnotu null, a proto bude hodnota příznaku „-z“ pravdivá, jak vidíte na následujícím obrázku:

Příklad č. 5: Převzetí uživatelského řetězce a jeho testování pomocí „if -z“

Pro testování vstupního řetězce poskytnutého uživatelem příkazem „if -z“ provedeme následující kroky:

Zkopírujeme skript zobrazený na obrázku níže v našem souboru Bash. Zde žádáme uživatele, aby zadal řetězec, a poté tento řetězec uložíme do proměnné „string“ pomocí příkazu „read“. Poté testujeme tento řetězec příkazem „if -z“, který se provede, pokud má řetězec hodnotu null. Pokud tomu tak bude, tento skript vyzve uživatele k zadání platného řetězce a poté tento řetězec vytiskne. Pokud však uživatel zadá platný řetězec poprvé, bude spuštěna část skriptu „else“.

Po spuštění tohoto skriptu Bash, když jsme byli vyzváni k zadání řetězce, jsme záměrně zadali nulový řetězec, tj.E., jednoduše jsme stiskli klávesu Enter. Proto nás náš terminál vyzval k zadání platného řetězce, jak je znázorněno na následujícím obrázku:

Tentokrát jsme zadali platný řetězec „ahoj“, a terminál proto vytiskl odpovídající zprávu, jak je znázorněno na obrázku níže:

Závěr

Tento článek vás naučí všem různým metodám, pomocí kterých můžete otestovat, zda jsou vaše řetězce prázdné nebo ne, když používáte příznaky „-z“ a „-n“ s příkazem „if“. Pomocí těchto příznaků můžeme otestovat libovolné řetězce, a proto je v našich skriptech velmi efektivně používat.

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é...
Hry Nainstalujte si nejnovější Dolphin Emulator pro Gamecube a Wii na Linuxu
Nainstalujte si nejnovější Dolphin Emulator pro Gamecube a Wii na Linuxu
Emulátor Dolphin vám umožní hrát vybrané hry Gamecube a Wii na osobních počítačích se systémem Linux (PC). Jako volně dostupný herní emulátor s otevř...
Hry Jak používat GameConqueror Cheat Engine v Linuxu
Jak používat GameConqueror Cheat Engine v Linuxu
Tento článek popisuje průvodce používáním cheatovacího modulu GameConqueror v systému Linux. Mnoho uživatelů, kteří hrají hry v systému Windows, často...