Σήμερα θα μιλήσουμε για τα σενάρια bash. Αυτό - σενάρια γραμμής εντολών, γραμμένο για το κέλυφος bash. Υπάρχουν και άλλα κελύφη όπως zsh, tcsh, ksh, αλλά θα επικεντρωθούμε στο bash. Αυτό το υλικό προορίζεται για όλους, η μόνη προϋπόθεση είναι η ικανότητα εργασίας γραμμή εντολών Linux.
Τα σενάρια γραμμής εντολών είναι συλλογές των ίδιων εντολών που μπορούν να εισαχθούν από το πληκτρολόγιο, να συλλεχθούν σε αρχεία και να ενωθούν για κάποιο κοινό σκοπό. Σε αυτήν την περίπτωση, τα αποτελέσματα της εργασίας των ομάδων μπορεί είτε να έχουν ανεξάρτητη αξία είτε να χρησιμεύσουν ως δεδομένα εισόδου για άλλες ομάδες. Τα σενάρια είναι ένας ισχυρός τρόπος για την αυτοματοποίηση ενεργειών που εκτελούνται συχνά.
Έτσι, αν μιλάμε για τη γραμμή εντολών, σας επιτρέπει να εκτελέσετε πολλές εντολές ταυτόχρονα εισάγοντάς τις χωρισμένες με ερωτηματικό:
pwd ; whoami
Στην πραγματικότητα, αν το δοκιμάσατε στο τερματικό σας, το πρώτο σας σενάριο bash που περιλαμβάνει δύο εντολές έχει ήδη γραφτεί. Δουλεύει κάπως έτσι. Ομάδα πρώτα pwd εμφανίζει πληροφορίες σχετικά με τον τρέχοντα κατάλογο εργασίας και μετά την εντολή whoamiεμφανίζει πληροφορίες σχετικά με τον χρήστη στον οποίο έχετε συνδεθεί.
Χρησιμοποιώντας αυτήν την προσέγγιση, μπορείτε να συνδυάσετε όσες εντολές θέλετε σε μία γραμμή, το μόνο όριο είναι ο μέγιστος αριθμός ορισμάτων που μπορούν να περάσουν στο πρόγραμμα. Μπορείτε να ορίσετε αυτό το όριο χρησιμοποιώντας την ακόλουθη εντολή:
getconf ARG_MAX
Η γραμμή εντολών είναι ένα εξαιρετικό εργαλείο, αλλά πρέπει να εισάγετε εντολές σε αυτήν κάθε φορά που τις χρειάζεστε. Τι θα γινόταν αν γράψαμε ένα σύνολο εντολών σε ένα αρχείο και απλώς καλέσαμε αυτό το αρχείο για να τις εκτελέσει; Στην πραγματικότητα, το αρχείο για το οποίο μιλάμε ονομάζεται σενάριο γραμμής εντολών.
Πώς λειτουργούν τα σενάρια bash
Δημιουργήστε ένα κενό αρχείο χρησιμοποιώντας την εντολή touch. Η πρώτη γραμμή του πρέπει να υποδεικνύει ποιο κέλυφος πρόκειται να χρησιμοποιήσουμε. Ενδιαφερόμαστε για bash, οπότε η πρώτη γραμμή του αρχείου θα είναι:
#!/bin/bash
Άλλες γραμμές σε αυτό το αρχείο χρησιμοποιούν το σύμβολο κατακερματισμού για να υποδείξουν σχόλια που δεν επεξεργάζεται το κέλυφος. Ωστόσο, η πρώτη γραμμή είναι μια ειδική περίπτωση, υπάρχει ένας κατακερματισμός ακολουθούμενος από ένα θαυμαστικό (αυτή η ακολουθία ονομάζεται δουλεία) και η διαδρομή προς bash, υποδεικνύουν στο σύστημα ότι το σενάριο δημιουργήθηκε ειδικά για το bash.
Οι εντολές φλοιού διαχωρίζονται από μια τροφοδοσία γραμμής, τα σχόλια διαχωρίζονται με ένα σύμβολο κατακερματισμού. Έτσι φαίνεται:
#!/bin/bash
# This is a comment
pwd
whoami
Εδώ, όπως και στη γραμμή εντολών, μπορείτε να γράψετε εντολές σε μία γραμμή, διαχωρισμένες με ερωτηματικά. Ωστόσο, εάν γράψετε τις εντολές σε διαφορετικές γραμμές, το αρχείο είναι πιο ευανάγνωστο. Σε κάθε περίπτωση, το κέλυφος θα τα επεξεργαστεί.
Ρύθμιση δικαιωμάτων αρχείου σεναρίου
Αποθηκεύστε το αρχείο δίνοντάς του ένα όνομα myscript, και η δουλειά για τη δημιουργία του σεναρίου bash έχει σχεδόν τελειώσει. Τώρα το μόνο που μένει είναι να κάνετε αυτό το αρχείο εκτελέσιμο, διαφορετικά, εάν προσπαθήσετε να το εκτελέσετε, θα αντιμετωπίσετε ένα σφάλμα Permission denied.
Προσπάθεια εκτέλεσης ενός αρχείου σεναρίου με εσφαλμένα ρυθμισμένα δικαιώματα
Ας κάνουμε το αρχείο εκτελέσιμο:
chmod +x ./myscript
Τώρα ας προσπαθήσουμε να το εκτελέσουμε:
./myscript
Μετά τη ρύθμιση των δικαιωμάτων, όλα λειτουργούν όπως θα έπρεπε.
Εκτέλεση σεναρίου bash με επιτυχία
Έξοδος μηνύματος
Για να εξάγετε κείμενο στην κονσόλα Linux, χρησιμοποιήστε την εντολή echo. Ας χρησιμοποιήσουμε τη γνώση αυτού του γεγονότος και ας επεξεργαστούμε το σενάριό μας, προσθέτοντας επεξηγήσεις στα δεδομένα που εξάγονται από τις εντολές που υπάρχουν ήδη σε αυτό:
#!/bin/bash
# our comment is here
echo "The current directory is:"
pwd
echo "The user logged in is:"
whoami
Αυτό συμβαίνει μετά την εκτέλεση του ενημερωμένου σεναρίου.
Εξαγωγή μηνυμάτων από σενάριο
Τώρα μπορούμε να εμφανίσουμε επεξηγηματικές σημειώσεις χρησιμοποιώντας την εντολή echo. Εάν δεν ξέρετε πώς να επεξεργαστείτε ένα αρχείο χρησιμοποιώντας εργαλεία Linux ή δεν έχετε ξαναδεί την εντολή echo, Ρίξε μια ματιά στο αυτό υλικό.
Χρήση μεταβλητών
Οι μεταβλητές σάς επιτρέπουν να αποθηκεύετε πληροφορίες σε ένα αρχείο δέσμης ενεργειών, όπως τα αποτελέσματα εντολών, για χρήση από άλλες εντολές.
Δεν υπάρχει τίποτα κακό με την εκτέλεση μεμονωμένων εντολών χωρίς αποθήκευση των αποτελεσμάτων τους, αλλά αυτή η προσέγγιση είναι αρκετά περιορισμένη στις δυνατότητές της.
Υπάρχουν δύο τύποι μεταβλητών που μπορούν να χρησιμοποιηθούν στα σενάρια bash:
Μεταβλητές Περιβάλλοντος
Μεταβλητές Χρήστη
Μεταβλητές Περιβάλλοντος
Μερικές φορές οι εντολές φλοιού πρέπει να λειτουργούν με ορισμένα δεδομένα συστήματος. Ακολουθεί ένα παράδειγμα του τρόπου εμφάνισης του αρχικού καταλόγου του τρέχοντος χρήστη:
#!/bin/bash
# display user home
echo "Home for the current user is: $HOME"
Λάβετε υπόψη ότι μπορούμε να χρησιμοποιήσουμε μια μεταβλητή συστήματος $HOME σε διπλά εισαγωγικά, αυτό δεν θα εμποδίσει το σύστημα να το αναγνωρίσει. Αυτό θα λάβετε εάν εκτελέσετε το παραπάνω σενάριο.
Χρησιμοποιώντας μια μεταβλητή περιβάλλοντος σε ένα σενάριο
Τι γίνεται αν χρειαστεί να εμφανίσετε ένα σύμβολο του δολαρίου στην οθόνη; Ας δοκιμάσουμε αυτό:
echo "I have $1 in my pocket"
Το σύστημα θα εντοπίσει ένα σύμβολο του δολαρίου σε μια συμβολοσειρά σε εισαγωγικά και θα υποθέσει ότι έχουμε αναφέρει μια μεταβλητή. Το σενάριο θα προσπαθήσει να εμφανίσει την τιμή μιας απροσδιόριστης μεταβλητής $1. Αυτό δεν είναι αυτό που χρειαζόμαστε. Τι να κάνω?
Σε αυτήν την περίπτωση, χρησιμοποιώντας τον χαρακτήρα διαφυγής, μια ανάστροφη κάθετο, πριν από το σύμβολο του δολαρίου θα βοηθήσει:
echo "I have $1 in my pocket"
Το σενάριο θα βγάζει τώρα ακριβώς αυτό που αναμένεται.
Χρησιμοποιώντας μια ακολουθία διαφυγής για να εκτυπώσετε ένα σύμβολο του δολαρίου
Μεταβλητές Χρήστη
Εκτός από τις μεταβλητές περιβάλλοντος, τα σενάρια bash σάς επιτρέπουν να ορίζετε και να χρησιμοποιείτε τις δικές σας μεταβλητές στο σενάριο. Τέτοιες μεταβλητές διατηρούν μια τιμή μέχρι να ολοκληρωθεί η εκτέλεση του σεναρίου.
Όπως και με τις μεταβλητές συστήματος, οι μεταβλητές χρήστη μπορούν να προσπελαστούν χρησιμοποιώντας το σύμβολο του δολαρίου:
TNW-CUS-FMP - κωδικός προσφοράς για έκπτωση 10% στις υπηρεσίες μας, διαθέσιμος για ενεργοποίηση εντός 7 ημερών
#!/bin/bash
# testing variables
grade=5
person="Adam"
echo "$person is a good boy, he is in grade $grade"
Αυτό συμβαίνει μετά την εκτέλεση ενός τέτοιου σεναρίου.
Προσαρμοσμένες μεταβλητές σε ένα σενάριο
Αντικατάσταση εντολών
Ένα από τα πιο χρήσιμα χαρακτηριστικά των σεναρίων bash είναι η δυνατότητα εξαγωγής πληροφοριών από την έξοδο εντολών και ανάθεσης σε μεταβλητές, επιτρέποντάς σας να χρησιμοποιείτε αυτές τις πληροφορίες οπουδήποτε στο αρχείο σεναρίου.
Αυτό μπορεί να γίνει με δύο τρόπους.
Χρησιμοποιώντας το backtick "`"
Από το σχεδιασμό $()
Όταν χρησιμοποιείτε την πρώτη προσέγγιση, προσέξτε να μην συμπεριλάβετε ούτε ένα εισαγωγικό στη θέση του backtick. Η εντολή πρέπει να περικλείεται σε δύο τέτοια εικονίδια:
mydir=`pwd`
Στη δεύτερη προσέγγιση, το ίδιο πράγμα γράφεται ως εξής:
mydir=$(pwd)
Και το σενάριο μπορεί να καταλήξει έτσι:
#!/bin/bash
mydir=$(pwd)
echo $mydir
Κατά τη λειτουργία του, η έξοδος της εντολής pwdθα αποθηκευτεί σε μια μεταβλητή mydir, τα περιεχόμενα του οποίου, χρησιμοποιώντας την εντολή echo, θα πάει στην κονσόλα.
Ένα σενάριο που αποθηκεύει τα αποτελέσματα μιας εντολής σε μια μεταβλητή
Μαθηματικές πράξεις
Για να εκτελέσετε μαθηματικές πράξεις σε ένα αρχείο σεναρίου, μπορείτε να χρησιμοποιήσετε μια κατασκευή όπως $((a+b)):
Σε ορισμένα σενάρια, πρέπει να ελέγχετε τη ροή της εκτέλεσης εντολών. Για παράδειγμα, εάν μια συγκεκριμένη τιμή είναι μεγαλύτερη από πέντε, πρέπει να εκτελέσετε μια ενέργεια, διαφορετικά μια άλλη. Αυτό ισχύει σε πολλές περιπτώσεις και εδώ η δομή ελέγχου θα μας βοηθήσει if-then. Στην απλούστερη μορφή του μοιάζει με αυτό:
if команда
then
команды
fi
Ακολουθεί ένα παράδειγμα εργασίας:
#!/bin/bash
if pwd
then
echo "It works"
fi
Σε αυτήν την περίπτωση, εάν εκτελεστεί η εντολή pwdθα ολοκληρωθεί με επιτυχία, το κείμενο "λειτουργεί" θα εμφανιστεί στην κονσόλα.
Ας χρησιμοποιήσουμε τις γνώσεις που έχουμε και ας γράψουμε ένα πιο σύνθετο σενάριο. Ας υποθέσουμε ότι πρέπει να βρούμε έναν συγκεκριμένο χρήστη /etc/passwd, και αν καταφέρατε να το βρείτε, αναφέρετε ότι υπάρχει.
#!/bin/bash
user=likegeeks
if grep $user /etc/passwd
then
echo "The user $user Exists"
fi
Αυτό συμβαίνει μετά την εκτέλεση αυτού του σεναρίου.
Αναζήτηση χρήστη
Εδώ χρησιμοποιήσαμε την εντολή grepγια να αναζητήσετε έναν χρήστη σε ένα αρχείο /etc/passwd. Αν η ομάδα grepάγνωστο σε εσάς, μπορείτε να βρείτε την περιγραφή του εδώ.
Σε αυτό το παράδειγμα, εάν βρεθεί ο χρήστης, το σενάριο θα εμφανίσει ένα αντίστοιχο μήνυμα. Τι γίνεται αν ο χρήστης δεν μπορούσε να βρεθεί; Σε αυτήν την περίπτωση, το σενάριο απλώς θα ολοκληρώσει την εκτέλεση χωρίς να μας πει τίποτα. Θα θέλαμε να μας πει και γι' αυτό, οπότε θα βελτιώσουμε τον κώδικα.
Κατασκευή ελέγχου αν-τότε-άλλο
Για να μπορεί το πρόγραμμα να αναφέρει τόσο τα αποτελέσματα μιας επιτυχημένης αναζήτησης όσο και της αποτυχίας, θα χρησιμοποιήσουμε την κατασκευή if-then-else. Ετσι δουλευει:
if команда
then
команды
else
команды
fi
Εάν η πρώτη εντολή επιστρέψει μηδέν, που σημαίνει ότι εκτελέστηκε με επιτυχία, η συνθήκη θα είναι αληθής και η εκτέλεση δεν θα προχωρήσει κατά μήκος του κλάδου else. Διαφορετικά, εάν επιστραφεί κάτι διαφορετικό από το μηδέν, το οποίο θα υποδηλώνει αποτυχία ή ψευδές αποτέλεσμα, οι εντολές μετά else.
Ας γράψουμε το ακόλουθο σενάριο:
#!/bin/bash
user=anotherUser
if grep $user /etc/passwd
then
echo "The user $user Exists"
else
echo "The user $user doesn’t exist"
fi
Η εκτέλεσή του κατέρρευσε else.
Εκτέλεση ενός σεναρίου με μια κατασκευή εάν-τότε-άλλο
Λοιπόν, ας προχωρήσουμε και ας αναρωτηθούμε για πιο σύνθετες συνθήκες. Τι γίνεται αν χρειάζεται να ελέγξετε όχι μία κατάσταση, αλλά πολλές; Για παράδειγμα, εάν βρεθεί ο επιθυμητός χρήστης, θα πρέπει να εμφανιστεί ένα μήνυμα, εάν πληρούται κάποια άλλη προϋπόθεση, θα πρέπει να εμφανιστεί ένα άλλο μήνυμα κ.λπ. Σε μια τέτοια κατάσταση, οι ένθετες συνθήκες θα μας βοηθήσουν. Μοιάζει με αυτό:
if команда1
then
команды
elif команда2
then
команды
fi
Εάν η πρώτη εντολή επιστρέψει μηδέν, που υποδηλώνει την επιτυχή εκτέλεσή της, οι εντολές στο πρώτο μπλοκ θα εκτελεστούν then, διαφορετικά, εάν η πρώτη συνθήκη είναι ψευδής και εάν η δεύτερη εντολή επιστρέψει μηδέν, θα εκτελεστεί το δεύτερο μπλοκ κώδικα.
#!/bin/bash
user=anotherUser
if grep $user /etc/passwd
then
echo "The user $user Exists"
elif ls /home
then
echo "The user doesn’t exist but anyway there is a directory under /home"
fi
Σε ένα τέτοιο σενάριο, μπορείτε, για παράδειγμα, να δημιουργήσετε έναν νέο χρήστη χρησιμοποιώντας την εντολή useradd, εάν η αναζήτηση δεν έδωσε αποτελέσματα ή κάντε κάτι άλλο χρήσιμο.
Σύγκριση αριθμών
Στα σενάρια μπορείτε να συγκρίνετε αριθμητικές τιμές. Παρακάτω είναι μια λίστα σχετικών εντολών.
n1 -eq n2Επιστρέφει true αν n1 ισούται με n2. n1 -ge n2 Επιστρέφει true αν n1περισσότερο ή ίσο n2. n1 -gt n2Επιστρέφει true αν n1 περισσότερο από n2. n1 -le n2Επιστρέφει true αν n1λιγότερο ή ίσο n2. n1 -lt n2Επιστρέφει true εάν το n1 είναι μικρότερο από n2. n1 -ne n2Επιστρέφει true αν n1δεν είναι ίσο n2.
Για παράδειγμα, ας δοκιμάσουμε έναν από τους τελεστές σύγκρισης. Σημειώστε ότι η έκφραση περικλείεται σε αγκύλες.
#!/bin/bash
val1=6
if [ $val1 -gt 5 ]
then
echo "The test value $val1 is greater than 5"
else
echo "The test value $val1 is not greater than 5"
fi
Αυτό θα δώσει αυτή η εντολή.
Σύγκριση αριθμών σε σενάρια
Μεταβλητή τιμή val1μεγαλύτερο από 5, ο κλάδος καταλήγει να εκτελείται thenτελεστή σύγκρισης και στην κονσόλα εμφανίζεται ένα αντίστοιχο μήνυμα.
Σύγκριση χορδών
Τα σενάρια μπορούν επίσης να συγκρίνουν τιμές συμβολοσειρών. Οι τελεστές σύγκρισης φαίνονται αρκετά απλοί, αλλά οι λειτουργίες σύγκρισης συμβολοσειρών έχουν ορισμένα χαρακτηριστικά, τα οποία θα θίξουμε παρακάτω. Εδώ είναι μια λίστα με χειριστές.
str1 = str2 Δοκιμάζει τις συμβολοσειρές για ισότητα, επιστρέφοντας true αν οι συμβολοσειρές είναι ίδιες.
str1 != str2Επιστρέφει true αν οι συμβολοσειρές δεν είναι ίδιες. str1 < str2Επιστρέφει true αν str1λιγότερο από str2. str1 > str2 Επιστρέφει true αν str1περισσότερο από str2. -n str1 Επιστρέφει true εάν το μήκος str1Πάνω απο το μηδέν. -z str1Επιστρέφει true εάν το μήκος str1ίσο με μηδέν.
Ακολουθεί ένα παράδειγμα σύγκρισης συμβολοσειρών σε ένα σενάριο:
#!/bin/bash
user ="likegeeks"
if [$user = $USER]
then
echo "The user $user is the current logged in user"
fi
Ως αποτέλεσμα της εκτέλεσης του σεναρίου, έχουμε τα εξής.
Σύγκριση συμβολοσειρών σε σενάρια
Εδώ είναι ένα χαρακτηριστικό της σύγκρισης χορδών που αξίζει να αναφερθεί. Δηλαδή, οι τελεστές ">" και "<" πρέπει να διαφύγουν με ανάστροφη κάθετο, διαφορετικά το σενάριο δεν θα λειτουργήσει σωστά, αν και δεν θα εμφανιστούν μηνύματα σφάλματος. Το σενάριο ερμηνεύει το σύμβολο ">" ως εντολή ανακατεύθυνσης εξόδου.
Δείτε πώς φαίνεται στον κώδικα η εργασία με αυτούς τους τελεστές:
#!/bin/bash
val1=text
val2="another text"
if [ $val1 > $val2 ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi
Εδώ είναι τα αποτελέσματα του σεναρίου.
Σύγκριση συμβολοσειρών, προειδοποίηση
Λάβετε υπόψη ότι το σενάριο, αν και εκτελείται, εκδίδει μια προειδοποίηση:
./myscript: line 5: [: too many arguments
Για να απαλλαγούμε από αυτήν την προειδοποίηση, καταλήγουμε $val2 σε διπλά εισαγωγικά:
#!/bin/bash
val1=text
val2="another text"
if [ $val1 > "$val2" ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi
Τώρα όλα λειτουργούν όπως πρέπει.
Σύγκριση χορδών
Ένα άλλο χαρακτηριστικό των τελεστών ">" και "<" είναι ο τρόπος με τον οποίο λειτουργούν με κεφαλαίους και πεζούς χαρακτήρες. Για να κατανοήσουμε αυτήν τη δυνατότητα, ας ετοιμάσουμε ένα αρχείο κειμένου με το ακόλουθο περιεχόμενο:
Likegeeks
likegeeks
Ας το σώσουμε δίνοντάς του ένα όνομα myfile, στη συνέχεια εκτελέστε την ακόλουθη εντολή στο τερματικό:
sort myfile
Θα ταξινομήσει τις γραμμές από το αρχείο ως εξής:
likegeeks
Likegeeks
Ομάδα sort, από προεπιλογή, ταξινομεί τις συμβολοσειρές με αύξουσα σειρά, δηλαδή το πεζό γράμμα στο παράδειγμά μας είναι μικρότερο από το κεφαλαίο. Τώρα ας ετοιμάσουμε ένα σενάριο που θα συγκρίνει τις ίδιες συμβολοσειρές:
#!/bin/bash
val1=Likegeeks
val2=likegeeks
if [ $val1 > $val2 ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi
Εάν το εκτελέσετε, αποδεικνύεται ότι όλα είναι αντίστροφα - το πεζό γράμμα είναι πλέον μεγαλύτερο από το κεφαλαίο.
Η εντολή ταξινόμησης και σύγκριση συμβολοσειρών σε ένα αρχείο σεναρίου
Στις εντολές σύγκρισης, τα κεφαλαία γράμματα είναι μικρότερα από τα πεζά. Η σύγκριση συμβολοσειρών εδώ γίνεται συγκρίνοντας τους κωδικούς ASCII των χαρακτήρων, επομένως η σειρά ταξινόμησης εξαρτάται από τους κωδικούς χαρακτήρων.
Ομάδα sort, με τη σειρά του, χρησιμοποιεί τη σειρά ταξινόμησης που καθορίζεται στις ρυθμίσεις γλώσσας συστήματος.
Έλεγχοι αρχείων
Ίσως οι ακόλουθες εντολές χρησιμοποιούνται πιο συχνά σε σενάρια bash. Σας επιτρέπουν να ελέγχετε διάφορες συνθήκες σχετικά με τα αρχεία. Εδώ είναι μια λίστα με αυτές τις εντολές.
-d fileΕλέγχει αν υπάρχει αρχείο και είναι κατάλογος. -e fileΕλέγχει εάν το αρχείο υπάρχει. -f file Ελέγχει εάν ένα αρχείο υπάρχει και είναι αρχείο. -r fileΕλέγχει εάν το αρχείο υπάρχει και είναι αναγνώσιμο. -s file ПΕλέγχει εάν το αρχείο υπάρχει και δεν είναι κενό. -w fileΕλέγχει εάν το αρχείο υπάρχει και είναι εγγράψιμο. -x fileΕλέγχει εάν το αρχείο υπάρχει και είναι εκτελέσιμο. file1 -nt file2 Ελέγχει αν είναι νεότερο file1Από file2. file1 -ot file2Ελέγχει αν είναι παλαιότερο file1Από file2. -O file Ελέγχει εάν το αρχείο υπάρχει και ανήκει στον τρέχοντα χρήστη. -G fileΕλέγχει εάν το αρχείο υπάρχει και αν το αναγνωριστικό ομάδας του ταιριάζει με το αναγνωριστικό ομάδας του τρέχοντος χρήστη.
Αυτές οι εντολές, καθώς και πολλές άλλες που συζητήθηκαν σήμερα, είναι εύκολο να τις θυμάστε. Τα ονόματά τους, καθώς είναι συντομογραφίες διαφόρων λέξεων, δηλώνουν άμεσα τους ελέγχους που πραγματοποιούν.
Ας δοκιμάσουμε μια από τις εντολές στην πράξη:
#!/bin/bash
mydir=/home/likegeeks
if [ -d $mydir ]
then
echo "The $mydir directory exists"
cd $ mydir
ls
else
echo "The $mydir directory does not exist"
fi
Αυτό το σενάριο, για έναν υπάρχοντα κατάλογο, θα εμφανίσει τα περιεχόμενά του.
Καταχώριση των περιεχομένων ενός καταλόγου
Πιστεύουμε ότι μπορείτε να πειραματιστείτε μόνοι σας με τις υπόλοιπες εντολές· όλες χρησιμοποιούνται σύμφωνα με την ίδια αρχή.
Αποτελέσματα της
Σήμερα μιλήσαμε για το πώς να ξεκινήσετε να γράφετε σενάρια bash και καλύψαμε μερικά βασικά πράγματα. Στην πραγματικότητα, το θέμα του προγραμματισμού bash είναι τεράστιο. Αυτό το άρθρο είναι μια μετάφραση του πρώτου μέρους μιας μεγάλης σειράς 11 υλικών. Αν θέλετε να συνεχίσετε τώρα, εδώ είναι μια λίστα με τα πρωτότυπα αυτών των υλικών. Για ευκολία, η μετάφραση της οποίας μόλις διαβάσατε περιλαμβάνεται εδώ.
Σενάριο Bash Βήμα προς Βήμα — εδώ μιλάμε για το πώς να ξεκινήσετε τη δημιουργία σεναρίων bash, εξετάζεται η χρήση μεταβλητών, περιγράφονται δομές υπό όρους, υπολογισμοί, συγκρίσεις αριθμών, συμβολοσειρές και εύρεση πληροφοριών σχετικά με αρχεία.
Bash Scripting Μέρος 3, Παράμετροι & επιλογές — αυτό το υλικό είναι αφιερωμένο σε παραμέτρους γραμμής εντολών και κλειδιά που μπορούν να περάσουν σε σενάρια, δουλεύοντας με δεδομένα που εισάγει ο χρήστης και τα οποία μπορούν να διαβαστούν από αρχεία.
Bash Scripting Part 4, Input & Output - εδώ μιλάμε για περιγραφείς αρχείων και για εργασία με αυτούς, για είσοδο, έξοδο, ροές σφαλμάτων και για ανακατεύθυνση εξόδου.
Bash Scripting Part 5, Sighals & Jobs — αυτό το υλικό είναι αφιερωμένο στα σήματα Linux, την επεξεργασία τους σε σενάρια και την εκκίνηση σεναρίων βάσει χρονοδιαγράμματος.
Bash Scripting Μέρος 6, Λειτουργίες — εδώ μπορείτε να μάθετε για τη δημιουργία και τη χρήση συναρτήσεων σε σενάρια και την ανάπτυξη βιβλιοθηκών.
Bash Scripting Part 11, Expect Command — αυτό το υλικό είναι αφιερωμένο στο εργαλείο Expect, με το οποίο μπορείτε να αυτοματοποιήσετε την αλληλεπίδραση με διαδραστικά βοηθητικά προγράμματα. Συγκεκριμένα, μιλάμε για αναμενόμενα σενάρια και την αλληλεπίδρασή τους με σενάρια bash και άλλα προγράμματα.
Πιστεύουμε ότι ένα από τα πολύτιμα χαρακτηριστικά αυτής της σειράς άρθρων είναι ότι, ξεκινώντας από το πιο απλό, κατάλληλο για χρήστες οποιουδήποτε επιπέδου, οδηγεί σταδιακά σε αρκετά σοβαρά θέματα, δίνοντας σε όλους την ευκαιρία να προχωρήσουν στη δημιουργία σεναρίων γραμμής εντολών Linux .
Αγαπητοι αναγνωστες! Ζητάμε από τους γκουρού του προγραμματισμού της bash να μιλήσουν για το πώς έφτασαν στα ύψη της μαεστρίας τους, να μοιραστούν τα μυστικά τους και ανυπομονούμε να λάβουμε τις εντυπώσεις από εκείνους που μόλις έγραψαν το πρώτο τους σενάριο.
Μόνο εγγεγραμμένοι χρήστες μπορούν να συμμετάσχουν στην έρευνα. Συνδεθείτε, Σας παρακαλούμε.