Πώς να ελέγξετε ότι η μεταβλητή είναι ρυθμισμένη ή κενή στο bash

How Check Variable Is Set



Μια μεταβλητή μπορεί να οριστεί ή απροσδιόριστη. Όταν οποιαδήποτε μεταβλητή δεν δηλώνεται ή δηλώνεται αλλά δεν εκχωρείται τιμή τότε η μεταβλητή δεν ορίζεται ή δεν ορίζεται. Όταν οποιαδήποτε μεταβλητή δηλώνεται και εκχωρείται με μια τιμή, τότε η μεταβλητή ορίζεται. Πολλές φορές απαιτείται να γνωρίζουμε ότι η συγκεκριμένη μεταβλητή έχει οριστεί ή όχι για σκοπούς προγραμματισμού. Ένας από τους σημαντικούς σκοπούς του ελέγχου ή όχι της μεταβλητής είναι η επικύρωση δεδομένων. Το Bash δεν έχει ενσωματωμένη λειτουργία όπως άλλες τυπικές γλώσσες προγραμματισμού για να ελέγξει αν μια μεταβλητή έχει οριστεί ή όχι. Αλλά το bash έχει ένα χαρακτηριστικό για να κάνει αυτό το έργο. Το πώς μπορείτε να ελέγξετε ότι η μεταβλητή έχει οριστεί ή όχι σε bash εμφανίζεται σε αυτό το σεμινάριο.

Σύνταξη:







[[ μεταβλητός]]Ή[[ -Μεμεταβλητός]]

Η επιλογή '-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.