Διαφορετικά παραδείγματα Subshell
Οι διαφορετικοί τρόποι εκτέλεσης του σεναρίου στο υποκέλυφος φαίνονται σε αυτό το μέρος του σεμιναρίου.
Παράδειγμα 1: Εκτελέστε το υποκέλυφος χρησιμοποιώντας το Single Quote και το Double Quote
Δημιουργήστε ένα αρχείο Bash με την ακόλουθη δέσμη ενεργειών που εκτυπώνει την τρέχουσα ημερομηνία και ώρα. Στη συνέχεια, η μεταβλητή $strVal εκτυπώνεται περικλείοντας το σενάριο υποφλοιού μέσα στα μονά εισαγωγικά και στα διπλά εισαγωγικά.
#!/bin/bash
#Εκτυπώστε την εντολή 'date' στο υποκέλυφος
ηχώ 'Σήμερα είναι «ημερομηνία». '
#Ορίστε μια μεταβλητή συμβολοσειράς
strVal = 'Bash Subshell'
#Εκτυπώστε τη μεταβλητή στο υποκέλυφος χρησιμοποιώντας μεμονωμένα εισαγωγικά
ηχώ 'Η έξοδος των μεμονωμένων εισαγωγικών:' '$(echo $strVal)'
#Εκτυπώστε τη μεταβλητή στο υποκέλυφος χρησιμοποιώντας διπλά εισαγωγικά
ηχώ 'Η έξοδος των διπλών εισαγωγικών:' ' $(echo $strVal) '
Η ακόλουθη έξοδος εμφανίζεται μετά την εκτέλεση του σεναρίου. Το σενάριο υποκελύφους εκτυπώνεται ως συμβολοσειρά όταν περικλείεται με τα μονά εισαγωγικά. Το σενάριο υποφλοιού εκτελείται όταν περικλείεται με τα διπλά εισαγωγικά:
Παράδειγμα 2: Αναζήτηση όλων των αρχείων της συγκεκριμένης επέκτασης χρησιμοποιώντας το υποκέλυφος
Δημιουργήστε ένα αρχείο Bash με το ακόλουθο σενάριο που παίρνει την επέκταση αρχείου ως είσοδο από τον χρήστη. Στη συνέχεια, η εντολή 'ls' εκτελείται στο υποκέλυφος για αναζήτηση όλων των αρχείων της συγκεκριμένης επέκτασης.
#!/bin/bash
ηχώ -n 'Εισαγάγετε το όνομα της επέκτασης αρχείου:'
#Πάρτε το όνομα επέκτασης αρχείου που θα γίνει αναζήτηση
ανάγνωση εσωτ
#Ελέγξτε την τιμή εισόδου
αν [ [ $ext == '' ] ] ; έπειτα
#Μήνυμα σφάλματος εκτύπωσης
ηχώ «Δεν δίνεται παράταση».
αλλού
ηχώ 'Ονόματα αρχείων με $ext επέκταση:'
#Εκτύπωση όλων των ονομάτων αρχείων με τη δεδομένη επέκταση
ηχώ ' $( echo `ls *.$ext` ) '
είναι
Η ακόλουθη έξοδος εμφανίζεται μετά την εκτέλεση του σεναρίου με την είσοδο 'txt'. Σύμφωνα με την έξοδο, τρία αρχεία κειμένου υπάρχουν στην τρέχουσα θέση:
Η ακόλουθη έξοδος εμφανίζεται μετά την εκτέλεση του σεναρίου με την κενή τιμή:
Παράδειγμα 3: Εκτελέστε την Αριθμητική Παράσταση στο Υποκέλυφος
Δημιουργήστε ένα αρχείο Bash με το ακόλουθο σενάριο όπου η μεταβλητή με το ίδιο όνομα χρησιμοποιείται στο κύριο κέλυφος και στο υποκέλυφος. Η αριθμητική πράξη ορίζεται στο κύριο κέλυφος και στο υποκέλυφος.
#!/bin/bash#Ορίστε μια μεταβλητή γονικού κελύφους
αριθμός = 10
#Εκτυπώστε το αποτέλεσμα με βάση τη μεταβλητή του γονικού κελύφους
( ( αποτέλεσμα = $αριθμός + 5 ) )
ηχώ 'Το άθροισμα του $αριθμός +5= $result '
#Δημιουργήστε μια μεταβλητή υποφλοιού με το ίδιο όνομα του γονικού κελύφους
( αριθμός = είκοσι ; ( ( αποτέλεσμα = $αριθμός + 10 ) ) ; ηχώ 'Το άθροισμα του $αριθμός +5= $result ' )
#Εκτυπώστε ξανά το αποτέλεσμα με βάση τη μεταβλητή του γονικού κελύφους
ηχώ 'Το άθροισμα του $αριθμός +5= $result '
Η ακόλουθη έξοδος εμφανίζεται μετά την εκτέλεση του σεναρίου. Η πρώτη και η τελευταία έξοδος δείχνουν το αποτέλεσμα του κύριου κελύφους. Η δεύτερη έξοδος δείχνει το αποτέλεσμα του υποκελύφους. Η μεταβλητή του κύριου κελύφους δεν τροποποιείται από τη μεταβλητή του υποφλοιού:
Παράδειγμα 4: Εκτελέστε πολλαπλές εντολές στο υποκέλυφος
Δημιουργήστε ένα αρχείο Bash με την ακόλουθη δέσμη ενεργειών που στέλνει την έξοδο της εντολής 'echo' στην εντολή 'sed' που αντικαθιστά την αντίστοιχη τιμή συμβολοσειράς με μια άλλη συμβολοσειρά. Η έξοδος της εντολής 'echo' είναι 'JavaScript'. Έτσι, αυτή η τιμή συγκρίνεται με το 'Java' και το 'JavaScript'. Εάν βρεθεί αντιστοιχία, οι αντίστοιχες συμβολοσειρές αντικαθίστανται από τη συμβολοσειρά 'Τύπος'.
#!/bin/bash#Ορίστε μια τιμή συμβολοσειράς
strVal = 'JavaScript'
#Εκτύπωση της αρχικής τιμής συμβολοσειράς
ηχώ 'Τιμή συμβολοσειράς: $strVal '
#Print the subshell value
ηχώ -n 'Τιμή υποκελύφους: '
ηχώ ' $(echo $strVal | sed 's|Java|Τύπος JavaScript|') '
Η ακόλουθη έξοδος εμφανίζεται μετά την εκτέλεση του σεναρίου. Σύμφωνα με την έξοδο, η συμβολοσειρά 'Java' αντικαθίσταται από τη συμβολοσειρά 'Τύπος'. Η έξοδος του υποκελύφους είναι 'JavaScript TypeScript':
συμπέρασμα
Μία ή περισσότερες εντολές ή σενάρια μπορούν να εκτελεστούν χρησιμοποιώντας το υποκέλυφος χωρίς να επηρεαστεί το κύριο κέλυφος. Οι σκοποί της χρήσης του υποκελύφους επεξηγούνται σε αυτό το σεμινάριο χρησιμοποιώντας πολλά παραδείγματα. Διαφορετικοί τύποι εργασιών, όπως η αναζήτηση των αρχείων, ο υπολογισμός του αθροίσματος των αριθμών, η αντικατάσταση των συμβολοσειρών κ.λπ. γίνονται από το υποκέλυφος στα παραδείγματα. Η έννοια της χρήσης του υποκελύφους αποδεικνύεται σωστά και οι νέοι χρήστες του Bash θα μπορούν πλέον να χρησιμοποιούν το υποκέλυφος αφού διαβάσουν αυτό το σεμινάριο.