Η εντολή δοκιμής μπορεί να χρησιμοποιηθεί στη γραμμή εντολών Linux για να συγκρίνει ένα στοιχείο με το άλλο, αλλά χρησιμοποιείται συνηθέστερα σε δέσμες ενεργειών BASH ως μέρος των δηλώσεων υπό όρους που ελέγχουν τη λογική και τη ροή του προγράμματος.
Ένα βασικό παράδειγμα
Μπορείτε να δοκιμάσετε αυτές τις εντολές απλά ανοίγοντας ένα παράθυρο τερματικού.
δοκιμή 1 -eq 2 && echo "ναι" || echo "no"
Η παραπάνω εντολή μπορεί να αναλυθεί ως εξής: Στην ουσία, η εντολή συγκρίνει το 1 με 2 και αν ταιριάζει, εκτελείται η εντολή echo "ναι" η οποία εμφανίζει "ναι" και αν δεν ταιριάζουν, εκτελείται η εντολή "no" η οποία εμφανίζει "όχι". Αν συγκρίνετε στοιχεία που αναλύονται ως αριθμοί, μπορείτε να χρησιμοποιήσετε τους ακόλουθους χειριστές σύγκρισης: Παραδείγματα δοκιμή 1 -eq 2 && echo "ναι" || echo "no"
(εμφανίζει "όχι" στην οθόνη επειδή το 1 δεν είναι ίσο με 2) δοκιμή 1 -ζ 2 && echo "ναι" || echo "no"
(εμφανίζει "όχι" στην οθόνη επειδή το 1 δεν είναι μεγαλύτερο ή ίσο με 2) δοκιμή 1 -gt 2 && echo "ναι" || echo "no"
(εμφανίζει "όχι" στην οθόνη επειδή το 1 δεν είναι μεγαλύτερο από 2) δοκιμή 1-ο 2 && echo "ναι" || echo "no"
(εμφανίζει "ναι" στην οθόνη επειδή το 1 είναι μικρότερο ή ίσο με 2) δοκιμή 1 -lt 2 && echo "ναι" || echo "no"
(εμφανίζει "ναι" στην οθόνη επειδή το 1 είναι μικρότερο ή ίσο με 2) δοκιμή 1 -ένα 2 & & echo "ναι" || echo "no"
(εμφανίζει "ναι" στην οθόνη επειδή το 1 δεν είναι ίσο με 2) Αν συγκρίνετε στοιχεία που αναλύονται ως συμβολοσειρές, μπορείτε να χρησιμοποιήσετε τους ακόλουθους χειριστές σύγκρισης: Παραδείγματα δοκιμή "string1" = "string2" && echo "ναι" || echo "no"
(εμφανίζει "όχι" στην οθόνη επειδή "string1" δεν ισούται με "string2") δοκιμή "string1"! = "string2" && echo "ναι" || echo "no"
(εμφανίζει "ναι" στην οθόνη επειδή "string1" δεν ισούται με "string2") δοκιμή -n "string1" && echo "ναι" || echo "no"
(εμφανίζει "ναι" στην οθόνη επειδή το "string1" έχει μήκος συμβολοσειράς μεγαλύτερο από το μηδέν) δοκιμή -z "string1" && echo "ναι" || echo "no"
(εμφανίζει "όχι" στην οθόνη επειδή το "string1" έχει μήκος συμβολοσειράς μεγαλύτερο από το μηδέν) Αν συγκρίνετε αρχεία, μπορείτε να χρησιμοποιήσετε τους ακόλουθους χειριστές σύγκρισης: Παραδείγματα δοκιμή / διαδρομή / προς / file1 -nt / path / to / file2 && echo "ναι"
(Εάν το αρχείο1 είναι νεότερο από το αρχείο2 τότε θα εμφανιστεί η λέξη "ναι") test -e / path / to / file1 & & echo "ναι"
(εάν υπάρχει αρχείο1, θα εμφανιστεί η λέξη "ναι") δοκιμή -O / διαδρομή / προς / αρχείο1 & & echo "ναι"
(αν έχετε το αρχείο1, τότε εμφανίζεται η λέξη "ναι") Ορολογία Μέχρι στιγμής, όλα έχουν συγκρίνει ένα πράγμα με το άλλο, αλλά τι γίνεται αν θέλετε να συγκρίνετε δύο συνθήκες; Για παράδειγμα, αν ένα ζώο έχει 4 πόδια και πηγαίνει "moo", είναι πιθανώς μια αγελάδα. Απλά ο έλεγχος για 4 πόδια δεν εγγυάται ότι έχετε μια αγελάδα, αλλά τον έλεγχο του ήχου που κάνει σίγουρα κάνει. Για να ελέγξετε ταυτόχρονα και τους δύο όρους, χρησιμοποιήστε την ακόλουθη δήλωση: δοκιμή 4 -eq 4 -a "moo" = "moo" && echo "είναι αγελάδα" || echo "δεν είναι αγελάδα"
Το βασικό μέρος εδώ είναι το -α που αντιπροσωπεύει και . Υπάρχει ένας καλύτερος και συνηθέστερος τρόπος εκτέλεσης της ίδιας δοκιμής και είναι ο εξής: test 4 -eq 4 && test "moo" = "moo" && echo "είναι αγελάδα" || echo "δεν είναι αγελάδα"
Μια άλλη δοκιμή που ίσως θελήσετε να κάνετε είναι να συγκρίνετε δύο δηλώσεις και αν είναι αληθής, εξάγετε μια συμβολοσειρά. Για παράδειγμα, εάν θέλετε να ελέγξετε ότι υπάρχει ένα αρχείο με όνομα "file1.txt" ή υπάρχει ένα αρχείο που ονομάζεται "file1.doc", μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή: test -e file1.txt -o -e αρχείο1.doc && echo "αρχείο1 υπάρχει" || echo "αρχείο1 δεν υπάρχει"
Το βασικό μέρος εδώ είναι το -ο που σημαίνει ή . Υπάρχει ένας καλύτερος και συνηθέστερος τρόπος εκτέλεσης της ίδιας δοκιμής και είναι ο εξής: test -e file1.txt || test -e file1.doc && echo "αρχείο1 υπάρχει" || echo "αρχείο1 δεν υπάρχει" Δεν χρειάζεται πραγματικά να χρησιμοποιήσετε τη δοκιμή λέξεων για να εκτελέσετε τη σύγκριση. Το μόνο που έχετε να κάνετε είναι να περικλείσετε τη δήλωση σε αγκύλες ως εξής: -e αρχείο1.txt && echo "αρχείο1 υπάρχει" || echo "αρχείο1 δεν υπάρχει"
Το και ουσιαστικά σημαίνει το ίδιο με το τεστ. Τώρα γνωρίζετε ότι μπορείτε να βελτιώσετε τη σύγκριση των πολλαπλών συνθηκών ως εξής: 4 -eq 4 && "moo" = "moo" && echo "είναι αγελάδα" || echo "δεν είναι αγελάδα"-ε αρχείο1.txt || -e αρχείο1.doc && echo "αρχείο1 υπάρχει" || echo "αρχείο1 δεν υπάρχει" Η εντολή δοκιμής είναι πιο χρήσιμη σε δέσμες ενεργειών επειδή μπορείτε να ελέγξετε την τιμή μιας μεταβλητής έναντι μιας άλλης και να ελέγξετε τη ροή του προγράμματος. Στην τυπική γραμμή εντολών, μπορείτε να το χρησιμοποιήσετε για να ελέγξετε αν υπάρχει αρχείο ή όχι.
Συγκρίνοντας τους αριθμούς
Σύγκριση κειμένου
Σύγκριση αρχείων
Συγκρίνοντας πολλαπλούς όρους
Εξάλειψη της λέξης κλειδιού δοκιμής
Περίληψη