Έλεγχος εάν υπάρχει αρχείο ή κατάλογος από σενάριο Bash
Το Bash χρησιμοποιείται για την αυτοματοποίηση εντολών που εκτελούνται τακτικά στο Linux. Οι εντολές που προορίζονται για λειτουργίες σε αρχεία/καταλόγους χρησιμοποιούνται αρκετά συχνά και συνήθως, πριν εκτελέσουμε μια τέτοια εντολή, πρέπει να ελέγξουμε αν υπάρχει το συγκεκριμένο αρχείο ή κατάλογος. Ας δούμε πώς γίνεται αυτός ο έλεγχος.
Σύνταξη και χρήση
Αρχεία
Για να ελέγξετε αν υπάρχει αρχείο, χρησιμοποιήστε την ακόλουθη σύνταξη:
[ -f ]
Η έκφραση [ -f ]
επιστρέφει 0, δηλαδή, επιτυχία εάν υπάρχει, και αν δεν υπάρχει, επιστρέφει μια μη μηδενική κατάσταση. Συνήθως, αυτό χρησιμοποιείται ως κατάσταση στο
αν
δήλωση.
αν [ -f ] τότε fi
Για άρνηση της επιστρεφόμενης τιμής, απλώς προηγείται του -φά
με τελεστή άρνησης (!
).
αν [ ! -f ] μετά fi
Σε αυτήν την περίπτωση, η συνθήκη θα ικανοποιηθεί εάν το αρχείο δεν υπάρχει, καθώς η επιστρεφόμενη μη μηδενική κατάσταση (false) θα ακυρωθεί και θα θεωρηθεί ως 0 (true).
Σημειώστε ότι εάν το αρχείο προς έλεγχο δεν υπάρχει στον τρέχοντα κατάλογο και υπάρχει σε κάποιον άλλο κατάλογο, θα πρέπει να αναφέρεται η πλήρης διαδρομή του αρχείου αντί μόνο για το όνομα του αρχείου.
καταλόγους
Παρόμοια σύνταξη που χρησιμοποιείται για τον έλεγχο αρχείων χρησιμοποιείται για τον έλεγχο των καταλόγων.
[-d]
Παρόμοια με τη δήλωση για αρχεία, αυτή η δήλωση επιστρέφει 0, δηλ., επιτυχία, εάν ο κατάλογος υπάρχει και επιστρέφεται μια μη μηδενική, δηλαδή κατάσταση αποτυχίας, εάν δεν υπάρχει. Αυτό χρησιμοποιείται επίσης συνήθως σε ένα
αν
κατάσταση δήλωσης.
αν [ -d ] τότε fi
Για να ακυρώσετε την κατάσταση που επιστράφηκε, προηγηθείτε του -ρε
με τελεστή άρνησης (!
).
αν [ ! -d ] μετά fi
Η συνθήκη θα ικανοποιήσει (κατάσταση 0) σε αυτήν την περίπτωση εάν ο κατάλογος δεν υπάρχει και θα αποτύχει (κατάσταση μη μηδενική) εάν υπάρχει ο κατάλογος.
Όπως αναφέρθηκε προηγουμένως για τα αρχεία, εάν ο κατάλογος που πρόκειται να ελεγχθεί υπάρχει σε άλλη θέση και όχι στον τρέχοντα κατάλογο, πρέπει να εισαχθεί ολόκληρη η διαδρομή του καταλόγου αντί για το όνομα του καταλόγου.
💡 Η σύνταξη παρένθεσης ( [...]
) που χρησιμοποιείται εδώ είναι στην πραγματικότητα μια εντολή Linux που ονομάζεται δοκιμή
. Οι επιλογές -φά
και -ρε
είναι τα χαρακτηριστικά αυτής της εντολής. Για περισσότερες πληροφορίες, ανατρέξτε στη σελίδα με το εγχειρίδιο του τεστ ( τεστ ανδρών
).
Έλεγχος από ένα σενάριο Bash
Στα παραπάνω παραδείγματα, χρησιμοποιήσαμε τις συντακτικές απευθείας στο τερματικό. Το κέλυφος κάθε φορά που συναντά έναν βρόχο ή μια δήλωση υπό όρους (αν
στην περίπτωσή μας), συνεχίζει την προτροπή και επιτρέπει στον χρήστη να εισαγάγει τη συνέχεια του μπλοκ.
Οι ίδιες συντακτικές μπορούν να χρησιμοποιηθούν μέσα από ένα σενάριο Bash.
ο #!/bin/bash
στην αρχή καθορίζει τον διερμηνέα που θα χρησιμοποιηθεί κατά την εκτέλεση του αρχείου. Αν και το Bash είναι το πιο συχνά χρησιμοποιούμενο κέλυφος στις μέρες μας, ορισμένοι χρήστες προτιμούν κοχύλια όπως zsh
, το οποίο θα πρέπει να καθοριστεί στη θέση του bash στην αρχή αυτού του αρχείου.
Για να δώσετε δικαιώματα εκτέλεσης για αυτό το αρχείο, εκτελέστε:
chmod +x test.sh
Τελικά, για να εκτελέσετε το αρχείο, τρέξιμο:
./test.sh