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

Η γνώση του σεναρίου Bash είναι απαραίτητη για κάθε προγραμματιστή, ειδικά αν εργάζεστε με συστήματα που βασίζονται σε Unix.

Μεταβλητές στο Bash

Μεταβλητές Bash είναι διάκριση πεζών-κεφαλαίων. Για να δηλώσετε μεταβλητές, χρησιμοποιήστε ένα σύμβολο ίσον (=) με το όνομα στα αριστερά και την τιμή στα δεξιά:

STATE=Ουάσιγκτον

Η τιμή στην οποία εκχωρεί αυτή η δήλωση ΚΑΤΑΣΤΑΣΗ είναι μια μόνο λέξη. Εάν χρειάζεστε κενά στην αξία σας, χρησιμοποιήστε εισαγωγικά γύρω από αυτό:

STATE="Βόρεια Αριζόνα"

Θα χρειαστεί να χρησιμοποιήσετε το σύμβολο του δολαρίου ($) πρόθεμα σε μεταβλητές αναφοράς σε άλλες μεταβλητές ή δηλώσεις:

instagram viewer
STATE=Ουάσιγκτον
LOCATION="Η τοποθεσία μου είναι $STATE"

Εκτύπωση τιμών στο Bash

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

STATE=Ουάσιγκτον
LOCATION="Η τοποθεσία μου είναι $STATE"
ηχώ$LOCATION

Μετά τη δήλωση του ΚΑΤΑΣΤΑΣΗ μεταβλητή, ορίζει αυτό το σενάριο ΤΟΠΟΘΕΣΙΑ με αναφορά ΠΟΛΙΤΕΙΑ. Αν τότε χρησιμοποιεί ηχώ για να εκτυπώσει την τελική τιμή της μεταβλητής LOCATION.

ο printf λέξη-κλειδί σάς επιτρέπει να χρησιμοποιείτε ρήματα μορφοποίησης για την έξοδο δεδομένων. Τα ρήματα μορφοποίησης συμβολοσειράς είναι παρόμοια με αυτά του C και του Go, αλλά με περιορισμένα ρήματα.

Ρήμα Λειτουργικότητα
%ντο εκτυπώνει μεμονωμένους χαρακτήρες
%o εκτυπώνει Οκταδάδικα
%μικρό εκτυπώνει χορδές, ανεξάρτητα από το περίβλημα
εκτυπώνει πεζά δεκαεξαδικά
εκτυπώνει κεφαλαία δεκαεξαδικά
%ρε εκτυπώνει ακέραιους αριθμούς
%μι εκτυπώνει την επιστημονική έννοια float με πεζά
%ΜΙ εκτυπώνει την επιστημονική έννοια επιπλέει με κεφαλαία
%φά εκτυπώνει αριθμούς κινητής υποδιαστολής
%% εκτυπώνει ένα σύμβολο ποσοστού.

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

STATE=Λαγός
printf "Η τοποθεσία μου είναι %s" $STATE

ο printf η λειτουργία θα υποκαθιστούσε το ΚΑΤΑΣΤΑΣΗ μεταβλητή στη θέση του %μικρό ρήμα και η έξοδος θα ήταν "Η τοποθεσία μου είναι το Λάγος".

Μπορείτε να κάνετε σχόλια στο Bash με τον κατακερματισμό ή τη λίβρα (#) σύμβολο. Το κέλυφος αγνοεί αυτόματα τα σχόλια.

#!/bin/bash
# STATE=Ουάσιγκτον
# LOCATION="Η τοποθεσία μου είναι $STATE"

Δεν υπάρχουν σχόλια πολλών γραμμών. Τα περισσότερα IDE και προγράμματα επεξεργασίας κειμένου σάς επιτρέπουν να σχολιάζετε με τη συντόμευση Ctrl/Command + κάθετο προς τα εμπρός(/). Θα πρέπει να μπορείτε να χρησιμοποιήσετε τη συντόμευση για να δημιουργήσετε πολλά σχόλια μιας γραμμής.

Λήψη εισόδου χρήστη στο Bash

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

ανάγνωση απάντηση

Σε αυτή την περίπτωση, το απάντηση μεταβλητή θα κρατήσει την είσοδο του χρήστη κατά την παράδοση.

echo "Τι θέλεις;"
διαβάστε την απάντηση
echo $response

Το αίτημα εισαγωγής χρήστη θα βρίσκεται σε μια νέα γραμμή στο παραπάνω παράδειγμα.

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

echo -n "Τι θέλεις."
διαβάστε την απάντηση
echo $response

Δήλωση πινάκων στο Bash

Πίνακες στο Bash είναι ακριβώς όπως οι περισσότερες γλώσσες. Μπορείτε να δηλώσετε μια μεταβλητή πίνακα στο Bash προσδιορίζοντας τα στοιχεία σε παρενθέσεις.

Χώρες=('ΗΠΑ' 'Ρωσία' 'Ουκρανία', "Αγγλία", "Ταϊβάν", "Κίνα")

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

ηχώ ${Χώρες[*]}

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

ηχώ "${Χώρες[4]}"

Δηλώσεις υπό όρους στο Bash

Το Bash παρέχει προϋποθέσεις για τη λήψη αποφάσεων σε προγράμματα.

Εδώ είναι η ανατομία μιας δήλωσης if-else στο Bash. Θα πρέπει να χρησιμοποιήσετε το ερωτηματικό για να καθορίσετε το τέλος της συνθήκης.

αν [[ κατάσταση ]]; έπειτα
ηχώ δήλωση 1
ελιφ [[κατάσταση ]]; έπειτα
ηχώ δήλωση 2
αλλού [[κατάσταση ]]; έπειτα
ηχώ δήλωση 3
fi

Πρέπει να τελειώσεις κάθε αν δήλωση με το fi λέξη-κλειδί.

αν [ 1 == 2 ]; έπειτα
ηχώ ένας
ελιφ [ 2 == 3 ]; έπειτα#άλλο-αν
ηχώ δύο
αλλού [ 4 > 3 ];
ηχώ "σωστό, 3"
fi

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

ΠΟΛΗ=Λαγός
υπόθεση$CITYσε
"Βάσιγκτων") # πρότυπο
ηχώ "Ηνωμένες πολιτείες Αμερικής" # δήλωση
;; # τέλος υπόθεσης
«Λαγός» | "Abuja")
ηχώ "Νιγηρία"
;;
«Γιοχάνεσμπουργκ» | "Κέιπ Τάουν")
ηχώ "Νότια Αφρική"
;;
*) # προεπιλεγμένο μοτίβο
ηχώ "Ανταρκτική" # προεπιλεγμένη δήλωση
;;
esac# τέλος της δήλωσης υπόθεσης

Μπορείτε να ορίσετε την προεπιλεγμένη περίπτωση χρησιμοποιώντας το σύμβολο αστερίσκου (*) ως μοτίβο. Οι δηλώσεις υπόθεσης πρέπει να τελειώνουν με το esac λέξη-κλειδί.

Βρόχοι στο Bash

Ανάλογα με τις ανάγκες σας, μπορείτε να χρησιμοποιήσετε βρόχο while, range for-loop ή C-style βρόχος για επαναλαμβανόμενες λειτουργίες.

Ακολουθεί ένα παράδειγμα του στυλ C for-loop. Οι βρόχοι For πρέπει να τελειώνουν με το Ολοκληρώθηκε λέξη-κλειδί και πρέπει να τερματίσετε τη δήλωση for με ένα ερωτηματικό ακολουθούμενο από το κάνω λέξη-κλειδί.

Για ((a = 0; a < 10; α+2)); κάνω
ηχώ$a
Ολοκληρώθηκε

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

Για Εγώ σε {1..7}; κάνω
ηχώ$1
Ολοκληρώθηκε

Ακολουθεί ένας απλός άπειρος βρόχος για την επίδειξη του Bash ενώ βρόχους σε δράση.

όνομα=1
ενώ [ 1 -λε 5 ] # ενώ 1 < 5
κάνω
ηχώ$name
Ολοκληρώθηκε

ο -le στη δήλωση συνθήκης είναι ο δυαδικός τελεστής για λιγότερο από.

Λειτουργίες στο Bash

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

print_working_directory() {
ηχώ$PWD#calling την εντολή PWD από το σενάριο
}
ηχώ "Είσαι σε $(print_working_directory)"

Οι συναρτήσεις μπορούν να επιστρέψουν μεταβλητές στο Bash. Το μόνο που χρειάζεστε είναι το ΕΠΙΣΤΡΟΦΗ λέξη-κλειδί.

print_working_directory() {
ΕΠΙΣΤΡΟΦΗ$PWD
}

ο print_working_directory Η λειτουργία επιστρέφει τον κατάλογο εργασίας του αρχείου.

Μπορείτε να γράψετε σενάρια Shell σε άλλες γλώσσες

Το Bash δεν είναι η μόνη γλώσσα που μπορείτε να χρησιμοποιήσετε για να αλληλεπιδράσετε με το κέλυφος του λειτουργικού σας συστήματος ή να δημιουργήσετε εφαρμογές γραμμής εντολών. Μπορείτε να χρησιμοποιήσετε πολλές άλλες γλώσσες όπως Go, Python, Ruby και Rust.

Πολλά λειτουργικά συστήματα έχουν προεγκατεστημένη την Python3 και η Python είναι μια διαδεδομένη γλώσσα. Εάν χρειάζεστε ακόμη περισσότερη λειτουργικότητα από αυτή που προσφέρουν τα σενάρια Bash, σκεφτείτε να χρησιμοποιήσετε την Python.