Ako skontrolovať, či je premenná v bash nastavená alebo prázdna

How Check Variable Is Set



Premennú je možné definovať alebo nedefinovať. Ak akákoľvek premenná nie je deklarovaná alebo deklarovaná, ale nie je priradená žiadna hodnota, premenná nie je nastavená alebo nedefinovaná. Keď je nejaká premenná deklarovaná a priradená jej hodnota, premenná sa nastaví. Mnohokrát to vyžaduje vedieť, či je konkrétna premenná nastavená alebo nie na účely programovania. Jedným z dôležitých účelov kontroly toho, či je premenná nastavená alebo nie, je validácia údajov. Bash nemá vstavanú funkciu ako ostatné štandardné programovacie jazyky na kontrolu, či je alebo nie je nastavená premenná. Ale bash má na túto úlohu funkciu. V tomto návode je ukázané, ako môžete skontrolovať, či je premenná nastavená alebo nie v bash.

Syntax:







[[ -vpremenná]]Alebo[[ -Spremenná]]

Voľba „-v“ alebo „-z“ sa používa na kontrolu, či je alebo nie je premenná nastavená. Vyššie uvedený booleovský výraz vráti true, ak je premenná nastavená, a vráti hodnotu false, ak premenná nie je nastavená alebo prázdna.



$ {variable+string}

Náhrada parametra je ďalším spôsobom, ako skontrolovať, či je premenná nastavená alebo nie je nastavená. Ak je premenná nastavená, vráti sa hodnota reťazca, inak sa vráti hodnota null.



Príklad 1: Pomocou možnosti „-z“ skontrolujte, či je premenná nastavená alebo zrušená

Vytvorte bash súbor s názvom check_var1.sh s nasledujúcim skriptom. Tu je prvý ` ak` podmienka sa vráti pravdivá a Počet premenných nie je nastavený vytlačí. V nasledujúcom výkaze je 20 priradená k premennej, $ num . Druhá podmienka „if“ vráti hodnotu false a Nastaví sa Num a hodnota Num = 20 vytlačí.





check_var1.sh

#!/bin/bash
#Skontrolujte, či je premenná nastavená alebo nie
keby [ -S $ {Num} ];potom
zahodil Premenná „Num“ nie je nastavená.
inak
zahodil Je nastavená premenná „Num“
byť
#Priraďte hodnotu
na jeden=dvadsať
#Po priradení hodnoty skontrolujte, či je premenná nastavená alebo nie
keby [ -S $ {Num} ];potom
zahodil Premenná „Num“ nie je nastavená
inak
zahodil '' Nastaví sa číslo a hodnota Num =$ num'
byť

Spustite skript.



$bashcheckvar1.sh

Príklad 2: Skontrolujte, či je premenná nastavená alebo deaktivovaná pomocou náhrady parametrov

Vytvorte bash súbor s názvom check_var2.sh a pridajte nasledujúci skript. Tu je premennej priradená hodnota reťazca, $ str pred kontrolou, či je premenná nastavená alebo nie je nastavená. Podmienka „if“ sa vráti na hodnotu true a správa, Je nastavená premenná „str“ a hodnota je Hello vytlačí.

check_var2.sh

#!/bin/bash
#Nastavte premennú
p= Dobrý deň
#Ak je nastavená premenná str, priraďte hodnotu Svet ku kontrolnému hodnoteniu
kontrola=$ {str+svet}
#Skontrolujte, či je premenná nastavená alebo nie je nastavená
keby [ $ checkval -ekvSvet];potom
zahodil Je nastavená premenná 'str' a hodnota je$ str'
inak
zahodil Premenná „str“ nie je nastavená
byť

Spustite skript.

$bashcheckvar2.sh

Príklad 3: Skontrolujte, či je premenná prázdna alebo nie

Vytvorte bash súbor s názvom check_var3.sh a pridajte nasledujúci skript. Skript uloží prvý argument príkazového riadka do premennej, $ argv to je testované v nasledujúcom vyhlásení. Výstup bude Prvý argument je prázdny ak nie je zadaný žiadny argument, vytlačí sa hodnota prvého argumentu.

check_var3.sh

#!/bin/sh
#Prečítajte si prvú hodnotu argumentu príkazového riadka
argv='1 $'
#Skontrolujte, či je zadaná prvá hodnota argumentu alebo nie
[ -v '$ argv' ] && zahodil „Prvý argument je prázdny“ ||
zahodil „Hodnota prvého argumentu je$ argv'

Spustite skript bez akéhokoľvek argumentu.

$bashcheckvar3.sh

Spustite skript s argumentom.

$bashcheckvar3.shtest

Záver

V tomto návode sú pomocou rôznych príkladov uvedené rôzne spôsoby, ako skontrolovať, či je premenná nastavená, či nie je nastavená alebo prázdna. Dúfam, že tento návod pomôže používateľom naučiť sa spôsoby testovania akejkoľvek premennej bash.