Σύνταξη:
[[ -βμεταβλητός]]Ή[[ -Μεμεταβλητός]]
Η επιλογή '-v' ή '-z' χρησιμοποιείται για να ελέγξει εάν η μεταβλητή είναι ρυθμισμένη ή μη. Η παραπάνω έκφραση Boolean θα επιστρέψει true αν η μεταβλητή έχει οριστεί και επιστρέφει false αν η μεταβλητή δεν είναι ρυθμισμένη ή κενή.
$ {variable+string}
Η αντικατάσταση παραμέτρων είναι ένας άλλος τρόπος για να ελέγξετε εάν η μεταβλητή είναι ρυθμισμένη ή μη. Εάν η μεταβλητή έχει οριστεί, τότε η τιμή της συμβολοσειράς θα επιστρέψει διαφορετικά η μηδενική θα επιστρέψει.
Παράδειγμα-1: Ελέγξτε ότι η μεταβλητή έχει οριστεί ή έχει οριστεί χρησιμοποιώντας την επιλογή '-z'
Δημιουργήστε ένα αρχείο bash με όνομα check_var1.sh με το παρακάτω σενάριο. Εδώ, το πρώτο ` αν ' η κατάσταση θα επανέλθει αληθινή και Η μεταβλητή αριθμού δεν έχει οριστεί θα εκτυπώσει. Στην επόμενη πρόταση, 20 αντιστοιχίζεται στη μεταβλητή, $ αριθ Το Η δεύτερη συνθήκη `if` θα επιστρέψει false και Το Num έχει οριστεί και η τιμή του Num = 20 θα εκτυπώσει.
check_var1.sh
#!/bin/bash#Ελέγξτε ότι η μεταβλητή έχει οριστεί ή όχι
αν [ -Με $ {Num} ]?τότε
πέταξε έξω '' Η μεταβλητή Num 'δεν έχει οριστεί'
αλλού
πέταξε έξω Η μεταβλητή 'Num' έχει οριστεί '
είναι
#Αναθέστε μια τιμή
σε ένα=είκοσι
#Ελέγξτε ότι η μεταβλητή έχει οριστεί ή όχι μετά την εκχώρηση της τιμής
αν [ -Με $ {Num} ]?τότε
πέταξε έξω Η μεταβλητή '' Num 'δεν έχει οριστεί'
αλλού
πέταξε έξω '' Ορίζεται ο αριθμός και η τιμή του αριθμού =$ αριθ'
είναι
Εκτελέστε το σενάριο.
$κτυπώ δυνατάcheckvar1.sh
Παράδειγμα-2: Ελέγξτε ότι η μεταβλητή έχει οριστεί ή έχει οριστεί χρησιμοποιώντας υποκατάστατο παραμέτρων
Δημιουργήστε ένα αρχείο bash με όνομα check_var2.sh και προσθέστε το παρακάτω σενάριο. Εδώ, μια τιμή συμβολοσειράς εκχωρείται στη μεταβλητή, $ str πριν από τον έλεγχο ότι η μεταβλητή έχει οριστεί ή δεν έχει οριστεί. Η συνθήκη «αν» θα επιστρέψει αληθής και το μήνυμα, Η μεταβλητή 'str' έχει οριστεί και η τιμή είναι Hello θα εκτυπώσει.
check_var2.sh
#!/bin/bash#Ορίστε τη μεταβλητή
Π= Γεια σας
#Αντιστοιχίστε την τιμή World σε checkval εάν έχει οριστεί η μεταβλητή str
checkval=$ {str+World}
#Ελέγξτε ότι η μεταβλητή έχει οριστεί ή δεν έχει οριστεί
αν [ $ checkval -ισοδύναμοΚόσμος]?τότε
πέταξε έξω Η μεταβλητή '' str 'έχει οριστεί και η τιμή είναι$ str'
αλλού
πέταξε έξω Η μεταβλητή '' str 'δεν έχει οριστεί'
είναι
Εκτελέστε το σενάριο.
$κτυπώ δυνατάcheckvar2.sh
Παράδειγμα-3: Ελέγξτε ότι η μεταβλητή είναι κενή ή όχι
Δημιουργήστε ένα αρχείο bash με όνομα check_var3.sh και προσθέστε το παρακάτω σενάριο. Το σενάριο θα αποθηκεύσει το πρώτο όρισμα της γραμμής εντολών σε μια μεταβλητή, $ argv που δοκιμάζεται στην επόμενη πρόταση. Η έξοδος θα είναι Το πρώτο επιχείρημα είναι κενό αν δεν περάσει κανένα όρισμα διαφορετικά η τιμή του πρώτου ορίσματος θα εκτυπωθεί.
check_var3.sh
#!/bin/sh#Διαβάστε την πρώτη τιμή ορίσματος γραμμής εντολών
argv='$ 1'
#Ελέγξτε ότι η πρώτη τιμή ορίσματος παρέχεται ή όχι
[ -β '$ argv' ] && πέταξε έξω 'Το πρώτο επιχείρημα είναι κενό' ||
πέταξε έξω «Η αξία του πρώτου επιχειρήματος είναι$ argv'
Εκτελέστε το σενάριο χωρίς κανένα επιχείρημα.
$κτυπώ δυνατάcheckvar3.shΕκτελέστε το σενάριο με ένα επιχείρημα.
$κτυπώ δυνατάcheckvar3.shδοκιμή
συμπέρασμα
Διαφορετικοί τρόποι ελέγχου της μεταβλητής είναι ρυθμισμένος ή μη ρυθμισμένος ή κενός εμφανίζονται σε αυτό το σεμινάριο χρησιμοποιώντας διάφορα παραδείγματα. Ελπίζω, αυτό το σεμινάριο θα βοηθήσει τους χρήστες να μάθουν τους τρόπους δοκιμής οποιασδήποτε μεταβλητής bash.