Επόμενο Προηγούμενο Περιεχόμενα
Όποτε θέλουμε να ελέγξουμε το αποτέλεσμα μίας λογικής ή
αριθμητικής έκφρασης χρησιμοποιούμε τη συνάρτηση test. Η
συνάρτηση test επιστρέφει τιμή "αληθής" ή "ψευδής"
ανάλογα με το αληθές ή ψευδές της λογικής (ή και
αριθμητικής) έκφρασης που ελέγχεται. H συνάρτηση test
μπορεί να γραφεί και ώς [ έλεγχος ]
. Η
έκφραση μπορεί να έχει ένα μόνο στοιχείο και έναν τελεστή
(ο οποίος έτσι ονομάζεται unary operator) ή μπορεί να
έχει δύο στοιχεία και έναν τελεστή ο οποίος ονομάζεται
binary operator. Πιο πολλές πληροφορίες από το manual
page της συνάρτησης test το οποίο μπορείτε να δείτε
γράφοντας man test
Οι πιο συνηθισμένοι τελεστές:
-
test [ 1 -eq 2 ]
Η ανωτέρω έκφραση είναι ψευδής γιατί ο (αριθμητικός)
τελεστής -eq σημαίνει ισότητα (equal). Άλλοι
αριθμητικοί τελεστές είναι οι:
-
-gt ο αριθμός αριστερά είναι μεγαλύτερος από τον
αριθμό δεξιά (greater than).
-
-lt ο αριθμός δεξιά είναι μικρότερος από τον αριθμό
αριστερά (less than).
-
-ne οι δύο αριθμοί δεν είναι ίσοι (not equal).
-
-ge ο αριθμός αριστερά είναι μεγαλύτερος ή ίσος από
τον αριθμό δεξιά (greater or equal).
-
-le ο αριθμός αριστερά είναι μικρότερος ή ίσος από
τον αριθμό δεξιά (less or equal).
-
test [ like = likme ]
Η ανωτέρω έκφραση είναι ψευδής γιατί ο (λογικός)
τελεστής = σημαίνει ότι τα δύο strings που συγκρίνουμε
είναι ίσα (ίδια). Άλλοι λογικοί τελεστές σχετικοί με
strings είναι οι:
-
!= ο οποίος προφανώς επιστρέφει "αληθές" όταν τα
δύο strings που συγκρίνουμε είναι ανόμοια.
-
-z ο οποίος είναι unary operator (συντάσσεται
δηλαδή ως εξής:
test [ -z string ]
)
επιστρέφει "αληθές" αν το μήκος του string είναι
μηδενικό.
-
-n που είναι και αυτός unary operator (συντάσσεται
δηλαδή ως εξής:
test [ -n string ]
)
επιστρέφει "αληθές" αν το μήκος του string δεν
είναι μηδενικό.
-
test [ -e filename ]
Η ανωτέρω έκφραση βγαίνει αληθής όταν το αρχείο με
όνομα filename υπάρχει. Άλλοι τελεστές ελέγχου της
κατάστασης ενός αρχείου είναι οι εξής (όλοι όσοι
αναφέρονται εδώ είναι unary operators):
-
-b αν το αρχείο υπάρχει και είναι block device
-
-c αν το αρχείο υπάρχει και είναι character device
-
-d αν το αρχείο υπάρχει και είναι directory
-
-f αν το αρχείο υπάρχει και είναι κανονικό αρχείο
-
-r αν το αρχείο υπάρχει και μπορεί να διαβαστεί
-
-s αν το αρχείο υπάρχει και το μέγεθος του δεν
είναι μηδέν
-
-w αν το αρχείο υπάρχει και μπορεί να γραφτεί
-
-x αν το αρχείο υπάρχει και μπορεί να εκτελεστεί
Επόμενο Προηγούμενο Περιεχόμενα