Πώς να χρησιμοποιήσετε τη δήλωση περίπτωσης Bash

How Use Bash Case Statement



Οι εντολές Bash case είναι παρόμοιες με τις δηλώσεις if-else αλλά είναι ευκολότερες και απλούστερες. Βοηθά στην αντιστοίχιση μιας μεταβλητής με πολλές τιμές. Χρησιμοποιείται όταν απαιτείτε τις δηλώσεις IF-else με έναν αριθμό δηλώσεων Elif ... Είναι πολύ παρόμοιο να αλλάξετε δήλωση στο C, ωστόσο, η δήλωση περίπτωσης bash δεν προχωράει μόλις αντιστοιχιστεί το μοτίβο

Σε αυτό το άρθρο, θα εξηγήσουμε πώς να χρησιμοποιήσετε τη δήλωση περίπτωσης Bash με παράδειγμα στο λειτουργικό σύστημα Linux.







Σύνταξη δήλωσης περίπτωσης bash

Ακολουθεί η σύνταξη για τη δήλωση περίπτωσης bash:



Σύνταξη:



υπόθεση $ μεταβλητή σε
πρότυπο-1)
εντολές
;;
πρότυπο-2)
εντολές
;;
πρότυπο-3)
εντολές
;;
μοτίβο-Ν)
εντολές
;;
*)
εντολές
;;
esac
  • Η δήλωση υπόθεσης ξεκινά με πεζά και τελειώνει με esac
  • Το) χρησιμοποιείται για τον τερματισμό ενός μοτίβου. Για να διαχωρίσετε πολλά μοτίβα, | Ο χειριστής χρησιμοποιείται όπως φαίνεται παρακάτω:
υπόθεση $ μεταβλητή σε
πρότυπο-1|πρότυπο-2)
εντολές
....
....
;;
πρότυπο-3|πρότυπο-4)
εντολές
....
....
;;
  • Το μοτίβο με εντολές είναι γνωστό ως ρήτρα και κάθε ρήτρα τελειώνει με (;;).
  • Το σύμβολο αστερίσκο* μπορεί να χρησιμοποιηθεί για τον καθορισμό της προεπιλεγμένης περίπτωσης.
  • Η δήλωση υπόθεσης Bash ταιριάζει πρώτα τη μεταβλητή $ input με τα διαφορετικά μοτίβα. Εάν ταιριάζει ένα μοτίβο, τότε το αντίστοιχο σύνολο εντολών έως τα διπλά ερωτηματικά (;;) θα εκτελεστεί.

Παράδειγμα 1:

Το ακόλουθο παράδειγμα αφορά την κατάσταση μετρητών bash στην οποία ζητά από τον χρήστη να εισαγάγει το όνομα του μήνα. Εάν αυτή η είσοδος ταιριάζει με τα καθορισμένα μοτίβα στο σενάριο, θα εκτελεστεί η αντίστοιχη εντολή echo. Η εντολή echo θα εμφανίσει πληροφορίες σχετικά με τη διεθνή εκδήλωση του συγκεκριμένου μήνα.





Για να χρησιμοποιήσετε αυτό το σενάριο, δημιουργήστε ένα απλό αρχείο κειμένου. ονομάστε το με επέκταση αρχείου .sh. Προσθέστε το παρακάτω σενάριο σε αυτό και αποθηκεύστε το. Στη συνέχεια, εκχωρήστε αυτό το αρχείο για την εκτέλεση δικαιωμάτων εκτελώντας την ακόλουθη εντολή στο τερματικό:

$sudo chmod 777όνομα αρχείου.σ

Για να εκτελέσετε αυτό το αρχείο bash, απλώς εκτελέστε ./ ακολουθούμενο από το όνομα του αρχείου bash ως εξής:



$Το/όνομα αρχείου.σ

Όταν εκτελείτε το σενάριο, θα σας ζητηθεί να εισαγάγετε το όνομα του μήνα ως είσοδο. Εάν το όνομα του μήνα αντιστοιχεί, θα εμφανίσει το αντίστοιχο συμβάν σε αυτόν τον συγκεκριμένο μήνα, διαφορετικά δεν θα εμφανιστούν πληροφορίες που να ταιριάζουν.

Σημειώστε ότι το shopt -s nocasematch χρησιμοποιείται για να ταιριάζει με το μοτίβο, ανεξάρτητα από την περίπτωσή του.

καταστήματα -μικρόnocasematch

πέταξε έξω 'Εισαγάγετε το όνομα του μήνα'
ανάγνωσημήνας
υπόθεση $ μήνα σε
Ιανουάριος)
πέταξε έξω «24η Ιανουαρίου Διεθνής Ημέρα Εκπαίδευσης».
;;
Φεβρουάριος)
πέταξε έξω «20 Φεβρουαρίου Παγκόσμια Ημέρα Κοινωνικής Δικαιοσύνης».
;;
Μάρτιος)
πέταξε έξω «8 Μαρτίου Διεθνής Ημέρα της Γυναίκας».
;;
Απρίλιος)
πέταξε έξω «7 Απριλίου, Παγκόσμια Ημέρα Υγείας»
;;
Ενδέχεται)
πέταξε έξω «Η 15η Μαΐου Διεθνής Ημέρα Οικογένειας»
;;
Ιούνιος)
πέταξε έξω «20 Ιουνίου Παγκόσμια Ημέρα Προσφύγων»
;;
Ιούλιος)
πέταξε έξω «11η Ιουλίου Παγκόσμια Ημέρα Πληθυσμού»
;;
*)
πέταξε έξω 'Δεν βρέθηκαν αντίστοιχες πληροφορίες'
;;
esac

Παράδειγμα 2:

Το ακόλουθο παράδειγμα αφορά τη δήλωση μετρητών bash στην οποία καλείται ένας χρήστης να εισαγάγει το όνομα χώρας. Εάν αυτή η είσοδος ταιριάζει με τα καθορισμένα μοτίβα στο σενάριο, θα εκτελεστεί η αντίστοιχη εντολή echo. Η εντολή echo θα εμφανίσει πληροφορίες σχετικά με την πρωτεύουσα της συγκεκριμένης χώρας.

Για να χρησιμοποιήσετε αυτό το σενάριο, ακολουθήστε την ίδια μέθοδο που περιγράφεται στο παραπάνω παράδειγμα. Μόλις τελειώσετε, εκτελέστε το σενάριο και θα σας ζητηθεί να εισαγάγετε το όνομα της χώρας ως είσοδο. Εάν το όνομα χώρας αντιστοιχεί με τα προκαθορισμένα ονόματα χωρών, θα εμφανίσει το όνομα κεφαλαίου της χώρας αυτής, διαφορετικά θα εμφανιστεί το μήνυμα Πληροφορίες μη διαθέσιμες.

#!/bin/bash
καταστήματα -μικρόnocasematch
πέταξε έξω 'Εισαγάγετε το όνομα μιας χώρας:'
ανάγνωσηΧώρα

πέταξε έξω 'Η πρωτεύουσα του$ countryείναι '
υπόθεση $ country σε
Πακιστάν)
πέταξε έξω «Ισλαμαμπάντ»
;;
Φίτζι)
πέταξε έξω 'Ξηρός'
;;
Ηνωμένο Βασίλειο| 'Ηνωμένο Βασίλειο')
πέταξε έξω 'Λονδίνο'
;;
Τουρκία)
πέταξε έξω 'Αγκυρα'
;;
ΧΡΗΣΕΙΣ)
πέταξε έξω 'Ουάσιγκτον'
;;
*)
πέταξε έξω «Οι πληροφορίες δεν είναι διαθέσιμες»
;;
esac
πέταξε έξω ''

Οι δηλώσεις περίπτωσης Bash καθιστούν ευκολότερη την ανάγνωση και την κατανόηση του σεναρίου bash. Σε αυτό το άρθρο, έχουμε καλύψει τον τρόπο γραφής και χρήσης δηλώσεων περίπτωσης bash. Τώρα μπορείτε να γράψετε μια δήλωση πολλαπλών επιπέδων if-else εύκολα και απλά με τη χρήση δηλώσεων πεζών-κεφαλαίων.