Το Bash scripting είναι ένας από τους πιο δημοφιλείς, προσβάσιμους τρόπους προγραμματισμού του υπολογιστή σας Linux. Αυτά τα απλά παραδείγματα σεναρίων θα σας βοηθήσουν να κατανοήσετε τη διαδικασία και να σας μυήσουν στα βασικά του προγραμματισμού Bash.
Πίνακας περιεχομένων
1. Πώς να εκτυπώσετε το Hello World στο Bash
Το παράδειγμα Hello World είναι ένας εξαιρετικός τρόπος για να μάθετε για οποιαδήποτε γλώσσα προγραμματισμού και το Bash δεν αποτελεί εξαίρεση.
Δείτε πώς μπορείτε να εκτυπώσετε το “Hello World” χρησιμοποιώντας το Bash:
#!/bin/bash
Η εντολή Shebang (#!/bin/bash) είναι απαραίτητη καθώς το κέλυφος τη χρησιμοποιεί για να αποφασίσει πώς θα εκτελέσει το σενάριο. Σε αυτήν την περίπτωση, χρησιμοποιεί τον διερμηνέα Bash.
echo "Hello World"
chmod +x hello_world.sh
./hello_world.sh
2. Δημιουργήστε έναν κατάλογο διαβάζοντας την εισαγωγή
Από τα σενάρια σας, μπορείτε να εκτελέσετε οποιοδήποτε πρόγραμμα που θα μπορούσατε κανονικά να εκτελείτε στη γραμμή εντολών. Για παράδειγμα, μπορείτε να δημιουργήσετε έναν νέο κατάλογο από το σενάριό σας χρησιμοποιώντας την εντολή mkdir.
#!/bin/bash
echo "Enter new directory name:"
read newdir
mkdir $newdir
3. Δημιουργήστε έναν κατάλογο χρησιμοποιώντας ορίσματα γραμμής εντολών
Ως εναλλακτική λύση στην ανάγνωση εισόδου διαδραστικά, οι περισσότερες εντολές Linux υποστηρίζουν ορίσματα. Μπορείτε να παρέχετε ένα όρισμα όταν εκτελείτε ένα πρόγραμμα, για να ελέγξετε τη συμπεριφορά του.
Μέσα στο σενάριο σας, μπορείτε να χρησιμοποιήσετε το $1 για να αναφερθείτε σε μια ειδική μεταβλητή που περιέχει την τιμή του πρώτου ορίσματος. Το $2 θα αναφέρεται στο δεύτερο όρισμα και ούτω καθεξής.
#!/bin/bash
mkdir $1
./arg_dir.sh Test
Ίσως αναρωτιέστε τι θα συμβεί εάν εκτελέσετε το σενάριο χωρίς να παρέχετε κανένα επιχείρημα. Δοκιμάστε το και δείτε? θα πρέπει να λάβετε ένα μήνυμα σφάλματος που ξεκινά το “usage: mkdir”:
Χωρίς ορίσματα γραμμής εντολών, η τιμή του $1 θα είναι κενή. Όταν το σενάριό σας καλεί το mkdir, δεν θα του μεταβιβάζει κάποιο όρισμα και η εντολή mkdir θα επιστρέψει αυτό το σφάλμα. Για να αποφύγετε αυτό, μπορείτε να ελέγξετε μόνοι σας την κατάσταση και να παρουσιάσετε ένα πιο φιλικό σφάλμα:
#!/bin/bash
if ["$1" = ""]; then
echo "Please provide a new directory name as the first argument"
exit
fi
mkdir $1
Όταν εκτελείτε αυτήν τη νέα έκδοση του σεναρίου, θα λάβετε ένα μήνυμα εάν ξεχάσετε να συμπεριλάβετε ένα όρισμα:
4. Διαγράψτε ένα αρχείο χρησιμοποιώντας μια συνάρτηση Bash
Εάν επαναλάβετε τον ίδιο κώδικα, σκεφτείτε να τον τυλίξετε σε μια συνάρτηση. Στη συνέχεια, μπορείτε να καλέσετε αυτήν τη λειτουργία όποτε χρειαστεί.
Ακολουθεί ένα παράδειγμα συνάρτησης που διαγράφει ένα δεδομένο αρχείο.
#!/bin/bash
del_file() {
echo "deleting $1"
rm $1
}
Στη συνέχεια, μπορείτε να καλέσετε τη συνάρτηση και να της δώσετε το όνομα ενός αρχείου για διαγραφή:
del_file test.txt
Όταν καλείτε μια συνάρτηση, θα ορίσει το ειδικό $; τιμή με την κατάσταση εξόδου της τελευταίας εντολής που εκτελεί. Η κατάσταση εξόδου είναι χρήσιμη για τον έλεγχο σφαλμάτων. σε αυτό το παράδειγμα, μπορείτε να ελέγξετε εάν η εντολή rm πέτυχε:
if [ $? -ne 0 ]; then
echo "Sorry, could not delete the file"
fi
5. Δημιουργήστε μια Βασική Αριθμομηχανή για Αριθμητικούς Υπολογισμούς
Αυτό το τελευταίο παράδειγμα δείχνει μια πολύ βασική αριθμομηχανή. Όταν το εκτελείτε, θα εισαγάγετε δύο τιμές και, στη συνέχεια, θα επιλέξετε μια αριθμητική πράξη για να τις εκτελέσετε.
Εδώ είναι ο κώδικας για το calc.sh:
#!/bin/bash
echo "Enter first number: "
read aecho "Enter second number: "
read b
echo "Enter Arithmetic Operation Choice :"
echo "1. Addition"
echo "2. Subtraction"
echo "3. Multiplication"
echo "4. Division"
read choice
case $choice in
1)
result=`echo $a + $b | bc`
;;2)
result=`echo $a - $b | bc`
;;3)
result=`echo $a \* $b | bc`
;;4)
result=`echo "scale=2; $a / $b" | bc`
;;
esacecho "Result: $result"
Σημειώστε τη χρήση της περίπτωσης … esac που είναι το ισοδύναμο του Bash της εντολής switch από άλλες γλώσσες. Σας επιτρέπει να δοκιμάσετε μια τιμή – σε αυτήν την περίπτωση, τη μεταβλητή επιλογή – σε πολλές σταθερές τιμές και να εκτελέσετε τον σχετικό κώδικα.
Αυτό το σενάριο χρησιμοποιεί την εντολή bc για να πραγματοποιήσει κάθε υπολογισμό.