Com es comprova que la variable està definida o buida a bash

How Check Variable Is Set



Es pot definir o indefinir una variable. Quan no es declara ni es declara cap variable, però no s'assigna cap valor, la variable no s'estableix ni està definida. Quan es declara qualsevol variable i s'assigna amb un valor, la variable s'estableix. Moltes vegades requereix saber que la variable concreta està configurada o no a efectes de programació. Un dels propòsits importants de verificar la variable està establert o no és la validació de dades. Bash no té cap funció integrada com altres llenguatges de programació estàndard per comprovar que una variable estigui configurada o no. Però bash té una característica per fer aquesta tasca. En aquest tutorial es mostra com podeu comprovar que la variable està establerta o no a bash.

Sintaxi:







[[ -vvariable]]O bé[[ -Ambvariable]]

L’opció ‘-v’ o ‘-z’ s’utilitza per comprovar que la variable està establerta o no definida. L'expressió booleana anterior tornarà vertadera si la variable està configurada i torna falsa si la variable no està definida o està buida.



$ {variable + cadena}

La substitució de paràmetres és una altra manera de comprovar que la variable està configurada o anul·lada. Si s'estableix la variable, el valor de la cadena tornarà, en cas contrari, tornarà nul.



Exemple-1: comproveu que la variable estigui definida o anul·lada mitjançant l'opció '-z'

Creeu un fitxer bash anomenat check_var1.sh amb el següent guió. Aquí, el primer ` si` condició es tornarà veritable i La variable Num no està definida imprimirà. A la següent sentència, s’assigna 20 a la variable, $ núm . La segona condició `si` tornarà falsa i Es defineix Num i el valor de Num = 20 imprimirà.





check_var1.sh

#! / bin / bash
#Comproveu que la variable estigui configurada o no
si [ -Amb $ {Num} ];llavors
trobo 'La variable' Num 'no està definida'
en cas contrari
trobo 'La variable' Num 'està definida'
ser
# Assigneu un valor
en un=20
#Comproveu que la variable estigui configurada o no després d'assignar el valor
si [ -Amb $ {Num} ];llavors
trobo La variable '' Num 'no està definida'
en cas contrari
trobo '' Num s'estableix i el valor de Num =$ núm'
ser

Executeu l'script.



$bashcheckvar1.sh

Exemple-2: comproveu que la variable estigui definida o anul·lada mitjançant un substitut de paràmetres

Creeu un fitxer bash anomenat check_var2.sh i afegiu el següent script. Aquí s’assigna un valor de cadena a la variable, $ str abans de comprovar que la variable estigui definida o anul·lada. La condició 'si' es tornarà veritable i el missatge, S'estableix la variable 'str' i el valor és Hola imprimirà.

check_var2.sh

#! / bin / bash
#Estableix la variable
pàg= Hola
# Assigneu el valor World a checkval si la variable str està establerta
checkval=$ {str + Món}
#Comproveu que la variable estigui definida o anul·lada
si [ $ checkval -eqMundial];llavors
trobo La variable '' str 's'estableix i el valor és$ str'
en cas contrari
trobo 'La variable' str 'no està definida'
ser

Executeu l'script.

$bashcheckvar2.sh

Exemple-3: comproveu que la variable estigui buida o no

Creeu un fitxer bash anomenat check_var3.sh i afegiu el següent script. El script emmagatzemarà el primer argument de línia d'ordres en una variable, $ argv això es prova a la següent declaració. La sortida serà El primer argument és buit si no es passa cap argument, en cas contrari s'imprimirà el valor del primer argument.

check_var3.sh

#! / bin / sh
#Llegiu el primer valor de l'argument de la línia d'ordres
argv='$ 1'
#Comproveu que el valor del primer argument es proporciona o no
[ -v '$ argv' ] && trobo 'El primer argument està buit' ||
trobo 'El valor del primer argument és$ argv'

Executeu l'script sense cap argument.

$bashcheckvar3.sh

Executeu l'script amb un argument.

$bashcheckvar3.shprova

Conclusió

En aquest tutorial es mostren diferents maneres de comprovar que la variable està establerta, no es defineix o està buida mitjançant diversos exemples. Espero que aquest tutorial ajudi els usuaris a conèixer les maneres de provar qualsevol variable bash.