Πώς να γράψετε IF-statements σε ένα Bash-Script

Εντολές, σύνταξη και παραδείγματα

Με μια εντολή if, που είναι ένας τύπος δήλωσης υπό όρους, μπορείτε να εκτελέσετε διαφορετικές ενέργειες ανάλογα με τις καθορισμένες συνθήκες. Δίνει αποτελεσματικά στο σύστημα τη δυνατότητα λήψης αποφάσεων.

Ένα παράδειγμα της απλούστερης μορφής μιας if-statement θα είναι:

count = 5 εάν [$ count == 5] τότε echo "count" fi

Σε αυτό το παράδειγμα, η μεταβλητή "count" χρησιμοποιείται για να προσδιορίσει μια συνθήκη που χρησιμοποιείται ως μέρος της εντολής if. Πριν εκτελεστεί η εντολή if, η μεταβλητή "count" αποδίδει την τιμή "5". Η if-statement ελέγχει αν η τιμή του "count" είναι "5". Αν αυτή είναι η περίπτωση, η δήλωση μεταξύ των λέξεων-κλειδιών "τότε" και "fi" εκτελούνται, διαφορετικά θα εκτελούνται όλες οι δηλώσεις που ακολουθούν την εντολή if. Η λέξη-κλειδί "fi" είναι "if" γραμμένη προς τα πίσω. Η γλώσσα δέσμης ενεργειών bash χρησιμοποιεί αυτή τη σύμβαση για να επισημάνει το τέλος μιας περίπλοκης έκφρασης, μιας τέτοιας δήλωσης if-statement ή των statements-case.

Η εντολή "echo" εκτυπώνει το όρισμα της, στην περίπτωση αυτή, την τιμή της μεταβλητής "count", στο παράθυρο του τερματικού. Η εσοχή του κώδικα μεταξύ των λέξεων-κλειδιών της δήλωσης if βελτιώνει την αναγνωσιμότητα αλλά δεν είναι απαραίτητη.

Εάν έχετε μια κατάσταση όπου ένα κομμάτι κώδικα θα πρέπει να εκτελεστεί μόνο εάν μια προϋπόθεση δεν είναι αληθής, μπορείτε να χρησιμοποιήσετε τη λέξη-κλειδί "else" σε μια εντολή if, όπως σε αυτό το παράδειγμα:

count = 5 αν [$ count == 5] τότε echo "count" άλλο echo "count δεν είναι 5" fi

Αν η προϋπόθεση "$ count == 5" είναι αληθής, το σύστημα εκτυπώνει την τιμή της μεταβλητής "count", διαφορετικά εκτυπώνει τη συμβολοσειρά "count not 5".

Εάν θέλετε να διαφοροποιήσετε τις πολλαπλές συνθήκες, μπορείτε να χρησιμοποιήσετε τη λέξη-κλειδί "elif", η οποία προέρχεται από το "else if", όπως στο παράδειγμα αυτό:

αν [$ count == 5] τότε echo "count είναι πέντε" elif [$ count == 6] τότε echo "count είναι έξι" else echo "κανένα από τα παραπάνω" fi

Αν το "count" είναι "5", το σύστημα εκτυπώνει "count is five". Αν το "count" δεν είναι "5" αλλά "6", το σύστημα εκτυπώνει "count is six". Αν δεν είναι ούτε "5" ούτε "6", το σύστημα εκτυπώνει "κανένα από τα παραπάνω".

Όπως ίσως έχετε μαντέψει, μπορείτε να έχετε οποιουσδήποτε αριθμό ρητρών "elif". Ένα παράδειγμα με πολλαπλές συνθήκες "elif" θα είναι:

αν το [$ count == 5] τότε echo "count είναι πέντε" elif [$ count == 6] τότε echo "count είναι έξι" elif [$ count == 7] = 8] τότε echo "count είναι οκτώ" elif [$ count == 9] τότε echo "count είναι εννέα" else echo "κανένα από τα παραπάνω" fi

Ένας πιο συμπαγής τρόπος για να γράφετε τέτοιες δηλώσεις με πολλαπλές συνθήκες είναι η μέθοδος περίπτωσης . Λειτουργεί παρόμοια με την εντολή if με πολλαπλές ρήτρες "elif", αλλά είναι πιο συνοπτική. Για παράδειγμα, το παραπάνω κομμάτι του κώδικα μπορεί να συνταχθεί ξανά με τη δήλωση "case" ως εξής:

περίπτωση "$ count" σε 5) echo "count είναι πέντε" ;; 6) echo "count είναι έξι"; 7) echo "count είναι επτά"; 8) echo "count είναι οκτώ"; 9) echo "count είναι εννέα"; *) echo "κανένα από τα παραπάνω" esac

Οι εντολές If-χρησιμοποιούνται συχνά μέσα σε for-loops ή while-loops όπως σε αυτό το παράδειγμα:

count = 1 done = 0 ενώ το [$ count -le 9] κάνει ύπνο 1 ((count ++)) εάν [$ count == 5] συνεχίσει να echo "$ count"

Μπορείτε επίσης να έχετε ενθέματα εάν δηλώσεις. Το πιο απλό ένθετο αν η δήλωση έχει τη μορφή: αν ... τότε ... αλλιώς ... αν ... τότε ... fi ... fi. Ωστόσο, εάν η δήλωση μπορεί να ενωθεί με αυθαίρετη πολυπλοκότητα.

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

Το κέλυφος bash παρέχει και άλλες κατασκευές προγραμματισμού, όπως for-loops , while-loops και αριθμητικές εκφράσεις .