Έξοδος εντολής BASH στη μεταβλητή

Bash Command Output Variable



Διαφορετικοί τύποι εντολών bash πρέπει να εκτελούνται από το τερματικό με βάση τις απαιτήσεις του χρήστη. Όταν ο χρήστης εκτελεί οποιαδήποτε εντολή από το τερματικό, τότε εμφανίζει την έξοδο εάν δεν υπάρχει σφάλμα, διαφορετικά εμφανίζει το μήνυμα σφάλματος. Μερικές φορές, η έξοδος της εντολής πρέπει να αποθηκευτεί σε μια μεταβλητή για μελλοντική χρήση. Για το σκοπό αυτό μπορεί να χρησιμοποιηθεί η δυνατότητα αντικατάστασης εντολών Shell του bash. Ο τρόπος με τον οποίο μπορείτε να αποθηκεύσετε διαφορετικούς τύπους εντολών κελύφους στη μεταβλητή χρησιμοποιώντας αυτήν τη λειτουργία εμφανίζεται σε αυτό το σεμινάριο.

μεταβλητός= $(εντολή)
μεταβλητός= $(εντολή [επιλογή…]επιχείρημα1 επιχειρήματα2 ...)
μεταβλητός= $(/μονοπάτι/προς το/εντολή)

Ή







μεταβλητός='εντολή'
μεταβλητός='εντολή [επιλογή…]επιχείρημα1 επιχειρήματα2 ...'
μεταβλητός=`/μονοπάτι/προς το/εντολή'

*** Σημείωση: Μην χρησιμοποιείτε κανένα διάστημα πριν και μετά το πρόσημο ίσου όταν χρησιμοποιείτε τις παραπάνω εντολές.



Ενιαία έξοδος εντολών σε μια μεταβλητή

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



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

μπας ` ημερομηνία » Η εντολή χρησιμοποιείται για την εμφάνιση της τρέχουσας ημερομηνίας και ώρας. Το παρακάτω σενάριο θα αποθηκεύσει την έξοδο του ` ημερομηνία » εντολή σε $ σημερινή ημερομηνία μεταβλητή χρησιμοποιώντας αντικατάσταση εντολών.





$σημερινή ημερομηνία= $(ημερομηνία)
$πέταξε έξω 'Σήμερα είναι$ current_date'

Παραγωγή:



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

`pwd` εντολή δείχνει τη διαδρομή του τρέχοντος καταλόγου εργασίας. Το παρακάτω σενάριο αποθηκεύει την έξοδο του `pwd` εντολή στη μεταβλητή, $ current_dir και η τιμή αυτής της μεταβλητής εκτυπώνεται με τη χρήση `ηχώ` εντολή.

$current_dir='pwd'
$πέταξε έξω 'Ο τρέχων κατάλογος είναι:$ current_dir'

Παραγωγή:

Εντολή με επιλογή και επιχείρημα

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

Παράδειγμα#3:

Bash ` τουαλέτα Η εντολή χρησιμοποιείται για τον υπολογισμό του συνολικού αριθμού γραμμών, λέξεων και χαρακτήρων οποιουδήποτε αρχείου. Αυτή η εντολή χρησιμοποιεί -c, -w και -l ως επιλογή και όνομα αρχείου ως όρισμα για τη δημιουργία της εξόδου. Δημιουργήστε ένα αρχείο κειμένου με όνομα φρούτα.txt με τα ακόλουθα δεδομένα για να δοκιμάσετε το επόμενο σενάριο.
φρούτα.txt

φρούτα.txt
Μάνγκο
Πορτοκάλι
Μπανάνα
Σταφύλι
Γκουάβα
μήλο

Εκτελέστε τις ακόλουθες εντολές για να μετρήσετε και να αποθηκεύσετε τον συνολικό αριθμό λέξεων στο φρούτα.txt αρχείο σε μεταβλητή, $ count_words και εκτυπώστε την τιμή χρησιμοποιώντας το ` ηχώ » εντολή.

$count_words='τουαλέτα -σεφρούτα.txt'
$πέταξε έξω 'Σύνολο λέξεων σε φρούτα.txt είναι$ count_words'

Παραγωγή:

Παράδειγμα#4:

`κόβω` είναι μια άλλη εντολή bash που χρησιμοποιεί την επιλογή και το όρισμα για να δημιουργήσει την έξοδο. Δημιουργήστε ένα αρχείο κειμένου με όνομα weekday.txt με ονόματα επτά εβδομάδων για την εκτέλεση του επόμενου σεναρίου.

weekday.txt

Δευτέρα
Τρίτη
Τετάρτη
Πέμπτη
Παρασκευή
Σάββατο
Κυριακή

Δημιουργήστε ένα αρχείο bash με όνομα cmdsub1.σ με το παρακάτω σενάριο. Σε αυτό το σενάριο, ενώ Ο βρόχος χρησιμοποιείται για την ανάγνωση του περιεχομένου του weekday.txt αρχείο γραμμή προς γραμμή και διαβάστε τους τρεις πρώτους χαρακτήρες κάθε γραμμής χρησιμοποιώντας ` κομμένο` εντολή. Μετά την κοπή, η τιμή συμβολοσειράς αποθηκεύεται στη μεταβλητή $ ημέρα Το Στη συνέχεια, Εάν η δήλωση χρησιμοποιείται για τον έλεγχο της τιμής του $ ημέρα είναι ' Ήλιος' ή όχι. Η έξοδος θα εκτυπωθεί « Η Κυριακή είναι αργία «Όταν, εάν η συνθήκη είναι αληθής, διαφορετικά θα εκτυπώσει την τιμή του $ ημέρα Το

cmdsub1.σ

#!/bin/bash
όνομα αρχείου='weekday.txt'
ενώ ανάγνωσηγραμμή;κάνω
ημέρα='πέταξε έξω $ line | Τομή -ντο 1-3'
αν [ $ ημέρα=='Ήλιος' ]
τότε
πέταξε έξω «Η Κυριακή είναι αργία»
αλλού
πέταξε έξω $ ημέρα
είναι
Έγινε<$ όνομα αρχείου

Εκτελέστε το σενάριο.

$Γάταweekday.txt
$κτυπώ δυνατάcmdsub1.σ

Παραγωγή:

Χρήση αντικατάστασης εντολών σε βρόχο

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

Παράδειγμα#5:

Δημιουργήστε ένα αρχείο με όνομα cmdsub2.sh με τον ακόλουθο κωδικό. Εδώ, ` ls -d * / Η εντολή `χρησιμοποιείται για την ανάκτηση όλης της λίστας καταλόγων από τον τρέχοντα κατάλογο. Για βρόχο χρησιμοποιείται εδώ για να διαβάσετε κάθε κατάλογο από την έξοδο και να τον αποθηκεύσετε στη μεταβλητή $ dirname που τυπώνεται αργότερα.

cmdsub2.sh

#!/bin/bash
Για dirname σε$(ls -ρε * /)
κάνω
πέταξε έξω '$ dirname'
Έγινε

Εκτελέστε το σενάριο.

$κτυπώ δυνατάcmdsub2.sh

Παραγωγή:

Χρήση ένθετων εντολών

Το πώς μπορείτε να χρησιμοποιήσετε πολλαπλές εντολές χρησιμοποιώντας σωλήνα (|) φαίνεται στο προηγούμενο παράδειγμα. Αλλά μπορείτε να χρησιμοποιήσετε ένθετες εντολές για αντικατάσταση εντολών όπου η έξοδος της πρώτης εντολής εξαρτάται από την έξοδο της δεύτερης εντολής και λειτουργεί απέναντι από την εντολή σωλήνα (|).

Ένθετη σύνταξη εντολών:

όπου='εντολή1 'εντολή'

Παράδειγμα#6:

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

$όπου='πέταξε έξω'οι οποίοι'
$πέταξε έξω $ var

Παραγωγή:

Χρησιμοποιώντας τη διαδρομή εντολών

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

Παράδειγμα#7:

`ουάμι` εντολή δείχνει το όνομα χρήστη του τρέχοντα συνδεδεμένου χρήστη. Από προεπιλογή, αυτή η εντολή αποθηκεύεται στο / usr/ είμαι/ ντοσιέ. Εκτελέστε το παρακάτω σενάριο για εκτέλεση ` ουάμι ' εντολή χρησιμοποιώντας διαδρομή και αποθήκευση στη μεταβλητή, $ έξοδος, και εκτυπώστε την τιμή του $ έξοδος Το

$παραγωγή= $(/usr/είμαι/ποιός είμαι)
$πέταξε έξω $ έξοδος

Παραγωγή:

Χρήση ορίσματος γραμμής εντολών

Μπορείτε να χρησιμοποιήσετε το όρισμα γραμμής εντολών με την εντολή ως όρισμα στην αντικατάσταση εντολών.

Παράδειγμα#8:

Δημιουργήστε ένα αρχείο bash με όνομα cmdsub3.sh με το παρακάτω σενάριο. ` βασικό όνομα Η εντολή `χρησιμοποιείται εδώ για να ανακτήσει το όνομα αρχείου από το 2ndόρισμα γραμμής εντολών και αποθηκευμένο στη μεταβλητή, $ όνομα αρχείου Το Γνωρίζουμε το 1stΤο όρισμα γραμμής εντολών είναι το όνομα του σεναρίου εκτέλεσης το οποίο συμβολίζεται με $ 0.

#!/bin/bash
όνομα αρχείου='βασικό όνομα $ 1'
πέταξε έξω «Το όνομα του αρχείου είναι$ όνομα αρχείου.. '

Εκτελέστε το σενάριο με την ακόλουθη τιμή ορίσματος.

$κτυπώ δυνατάcmdsub3.sh Επιφάνεια εργασίας/θερμ/hello.txt

Εδώ, το βασικό όνομα του μονοπατιού, Επιφάνεια εργασίας/temp/hello.txt είναι ' hello.txt ’. Έτσι, η αξία του $ όνομα αρχείου θα είναι hello.txt Το

Παραγωγή:

Συμπέρασμα:

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

Περισσότερες πληροφορίες στο βίντεο: