The mind behind Linux | Linus Torvalds
Πίνακας περιεχομένων:
ifΔήλωσηif..elseΔήλωσηif..elif..elseStatement- Ένθετο
ifΔηλώσεις - Πολλαπλές συνθήκες
- Δοκιμαστές
- συμπέρασμα
Η λήψη αποφάσεων είναι μία από τις πιο θεμελιώδεις έννοιες του προγραμματισμού υπολογιστών. Όπως συμβαίνει σε οποιαδήποτε άλλη γλώσσα προγραμματισμού,
if
,
if
,
if..elif..else
και ένθετο
if
δηλώσεις στο Bash μπορούν να χρησιμοποιηθούν για την εκτέλεση κώδικα με βάση μια συγκεκριμένη συνθήκη.
Σε αυτό το σεμινάριο, θα σας καθοδηγήσουμε στα βασικά των δηλώσεων Bash και θα σας δείξουμε πώς να τα χρησιμοποιήσετε στα σενάρια του κελύφους σας.
if
Δήλωση
Bash
if
προϋποθέσεις μπορούν να έχουν διαφορετικές μορφές. Η πιο βασική δήλωση
if
λαμβάνει την ακόλουθη μορφή:
if TEST-COMMAND then STATEMENTS fi
Η εντολή
if
ξεκινά με τη λέξη κλειδιού
if
ακολουθούμενη από την έκφραση υπό όρους και την
then
λέξη-κλειδί. Η δήλωση τελειώνει με τη λέξη-κλειδί
fi
.
Εάν το
TEST-COMMAND
αξιολογηθεί στην τιμή
True
, εκτελούνται οι ΔΕΙΚΤΕΣ. Αν το
TEST-COMMAND
επιστρέψει
False
, δεν συμβαίνει τίποτα, οι
STATEMENTS
αγνοούνται.
Γενικά, είναι μια καλή πρακτική πάντα να περιγράφετε τον κώδικα και τα ξεχωριστά μπλοκ κώδικα με κενές γραμμές. Οι περισσότεροι άνθρωποι επιλέγουν να χρησιμοποιούν είτε εσοχή 4 διαστήματος ή 2 διαστήματα. Οι εσοχές και οι κενές γραμμές κάνουν τον κώδικα πιο ευανάγνωστο και οργανωμένο.
Ας δούμε το ακόλουθο σενάριο παραδείγματος που ελέγχει εάν ένας δεδομένος αριθμός είναι μεγαλύτερος από 10.
#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." fi
Αποθηκεύστε τον κώδικα σε ένα αρχείο και εκτελέστε τον από τη γραμμή εντολών:
bash test.sh
Το σενάριο θα σας ζητήσει να εισαγάγετε έναν αριθμό. Εάν, για παράδειγμα, εισάγετε 15, η εντολή
test
θα αξιολογηθεί ως
true
επειδή το 15 είναι μεγαλύτερο από 10 και θα εκτελεστεί η εντολή
echo
μέσα στην
then
ρήτρα.
The variable is greater than 10.
if..else
Δήλωση
Η
if..else
Bash
if..else
έχει την ακόλουθη μορφή:
if TEST-COMMAND then STATEMENTS1 else STATEMENTS2 fi
Αν το
TEST-COMMAND
αξιολογηθεί σε
True
, θα εκτελεστούν τα
STATEMENTS1
. Διαφορετικά, αν το
TEST-COMMAND
επιστρέψει
False
, θα εκτελούνται τα
STATEMENTS2
. Μπορείτε να έχετε μόνο μία
else
ρήτρα στη δήλωση.
Ας προσθέσουμε μια ρήτρα
else
στο προηγούμενο script παράδειγμα:
#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." else echo "The variable is equal or less than 10." fi
if..elif..else
Statement
Η
if..elif..else
Bash
if..elif..else
έχει την ακόλουθη μορφή:
if TEST-COMMAND1 then STATEMENTS1 elif TEST-COMMAND2 then STATEMENTS2 else STATEMENTS3 fi
Αν το
TEST-COMMAND1
αξιολογηθεί σε
True
, θα εκτελούνται τα
STATEMENTS1
. Εάν η
TEST-COMMAND2
αξιολογηθεί ως
True
, θα εκτελούνται τα
STATEMENTS2
. Εάν καμία από τις εντολές ελέγχου δεν αξιολογηθεί ως
True
, εκτελείται το
STATEMENTS2
.
Μπορείτε να έχετε μία ή περισσότερες ρήτρες
elif
στη δήλωση. Η ρήτρα
else
είναι προαιρετική.
Οι συνθήκες αξιολογούνται διαδοχικά. Μόλις μια συνθήκη επιστρέψει
True
οι υπόλοιπες συνθήκες δεν εκτελούνται και ο έλεγχος προγράμματος μετακινείται στο τέλος των εντολών
if
.
Ας προσθέσουμε μια ρήτρα
elif
στο προηγούμενο script:
#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." elif] then echo "The variable is equal to 10." else echo "The variable is less than 10." fi
Ένθετο
if
Δηλώσεις
Το Bash σάς επιτρέπει να φωλιάζετε
if
δηλώσεις μέσα σε
if
δηλώσεις. Μπορείτε να τοποθετήσετε πολλαπλές
if
statement μέσα σε άλλη εντολή
if
.
Το παρακάτω σενάριο θα σας ζητήσει να εισαγάγετε τρεις αριθμούς και θα εκτυπώσετε τον μεγαλύτερο αριθμό μεταξύ των τριών αριθμών.
#!/bin/bash echo -n "Enter the first number: " read VAR1 echo -n "Enter the second number: " read VAR2 echo -n "Enter the third number: " read VAR3 if] then if] then echo "$VAR1 is the largest number." else echo "$VAR3 is the largest number." fi else if] then echo "$VAR2 is the largest number." else echo "$VAR3 is the largest number." fi fi
Εδώ είναι πώς θα μοιάζει η έξοδος:
Enter the first number: 4 Enter the second number: 7 Enter the third number: 2 7 is the largest number.
Αντί να χρησιμοποιείτε δηλώσεις ενθέτων, συνήθως είναι πιο αποτελεσματική η χρήση της δήλωσης περίπτωσης.
Πολλαπλές συνθήκες
Οι λογικοί χειριστές
OR
και
AND
σας επιτρέπουν να χρησιμοποιείτε πολλαπλές συνθήκες στις δηλώσεις
if
.
Εδώ είναι μια άλλη έκδοση του σεναρίου για να εκτυπώσετε τον μεγαλύτερο αριθμό μεταξύ των τριών αριθμών. Σε αυτήν την έκδοση, αντί για τις ένθετες εντολές
if
, θα χρησιμοποιήσουμε τον λογικό τελεστή
AND
(
&&
).
#!/bin/bash echo -n "Enter the first number: " read VAR1 echo -n "Enter the second number: " read VAR2 echo -n "Enter the third number: " read VAR3 if] &&] then echo "$VAR1 is the largest number." elif] &&] then echo "$VAR2 is the largest number." else echo "$VAR3 is the largest number." fi
Δοκιμαστές
Στο Bash, η εντολή
test
λαμβάνει μία από τις ακόλουθες μορφές σύνταξης:
test EXPRESSION]
Για να αναιρέσετε την έκφραση δοκιμής, χρησιμοποιήστε τον λογικό τελεστή
NOT
(
!
). Κατά τη σύγκριση των συμβολοσειρών χρησιμοποιείτε πάντα μονό ή διπλό εισαγωγικά για να αποφύγετε τυχόν προβλήματα διάσπασης ή στροβιλισμού λέξεων.
Παρακάτω παρατίθενται ορισμένοι από τους πιο συνήθεις χειριστές:
-
-nVAR- Αληθές αν το μήκος του VAR είναι μεγαλύτερο από το μηδέν.-zVAR- Αληθές αν το VAR είναι κενό.STRING1 = STRING2- Αληθινή [STRING1 και STRING2 είναι ίσες.STRING1 != STRING2- Οι αληθείς STRING1 και STRING2 δεν είναι ίσοι.INTEGER1 -eq INTEGER2- Το True INTEGER1 και το INTEGER2 είναι ίσοι.INTEGER1 -gt INTEGER2- Το True INTEGER1 είναι μεγαλύτερο από INTEGER2.INTEGER1 -lt INTEGER2- Το True INTEGER1 είναι μικρότερο από INTEGER2.INTEGER1 -ge INTEGER2- Το True INTEGER1 είναι ίσο ή μεγαλύτερο από INTEGER2.INTEGER1 -le INTEGER2- Το True INTEGER1 είναι ίσο ή μικρότερο από INTEGER2.-hFILE- Αληθινό αν υπάρχει το ΑΡΧΕΙΟ και είναι ένας συμβολικός σύνδεσμος.-rFILE- Αληθινό αν το ΑΡΧΕΙΟ υπάρχει και είναι αναγνώσιμο.-wFILE- Αληθές αν το ΑΡΧΕΙΟ υπάρχει και είναι εγγράψιμο.-xFILE- Αληθινό αν το ΑΡΧΕΙΟ υπάρχει και είναι εκτελέσιμο.-dFILE- Αληθινό αν υπάρχει το ΑΡΧΕΙΟ και είναι ένας κατάλογος.-eFILE- Αληθινό αν το ΑΡΧΕΙΟ υπάρχει και είναι ένα αρχείο, ανεξάρτητα από τον τύπο (κόμβος, κατάλογος, υποδοχή κλπ.).-fFILE- Αληθινό αν υπάρχει το ΑΡΧΕΙΟ και είναι κανονικό αρχείο (όχι κατάλογος ή συσκευή).
συμπέρασμα
Οι
if..elif..else
if
,
if..else
και
if..elif..else
σας επιτρέπουν να ελέγχετε τη ροή της εκτέλεσης του σεναρίου Bash με την αξιολόγηση συγκεκριμένων συνθηκών.
Οι ακριβείς συνθήκες της αναχώρησης του Greene δεν ήταν άμεσα σαφείς στη δήλωση Εταιρία. Η VMware δεν συσχετίζει ρητά την ανακοίνωση με άλλη είδηση που αποκάλυψε την Τρίτη - ότι αναμένει ότι τα έσοδα του 2008 θα είναι "μέτρια κάτω" από την προηγούμενη εκτίμησή της για αύξηση 50% σε σχέση με το 2007.
Ο Maritz έχει διατελέσει πρόεδρος EMC Cloud Division. Είναι επίσης πρώην εκτελεστικό της Microsoft που διαχειριζόταν το μάρκετινγκ και την ανάπτυξη για προϊόντα όπως τα Windows 95 και τα Windows NT. Το 2003, η Maritz δημιούργησε την Pi Corporation, κατασκευαστή του λογισμικού διαχείρισης προσωπικών πληροφοριών που βασίζεται σε cloud, το οποίο αποκτήθηκε από την EMC νωρίτερα έτος
Η ομάδα κατέθεσε αγωγή στην περιοχή Τόκιο Δικαστήριο εναντίον των πέντε την Τρίτη, οι οποίες κατηγορούνται ότι εισάγουν μια συσκευή που ονομάζεται "R4 Revolution for DS". Η μικρή συσκευή χωράει στην υποδοχή της κασέτας DS και επιτρέπει να παίζονται παιχνίδια που είναι αποθηκευμένα σε μια κάρτα Micro SD στο DS. Μπορεί να χρησιμοποιηθεί για να παίξει τόσο το homebrew όσο και τα hacked παιχνίδια στο DS, αλλά είναι το τελευταίο που η Nintendo ξεχώρισε στη δήλωση που περιγράφει λεπτομερώς τ
Αυτό είναι ένας αγώνας κατά του παράνομα αντιγραμμένου και κατεβασμένου λογισμικού υπογραμμίζεται από την παρουσία οι περισσότεροι από τους μεγαλύτερους κατασκευαστές λογισμικού της Ιαπωνίας μαζί με τη Nintendo στο κοστούμι, συμπεριλαμβανομένων των Atlus, Capcom, D3 Publishers, Hudson, Koei, Namco Bandai, Square Enix, Sega, Taito και Tecmo. μπορεί να παραληφθεί στην ηλεκτρονική περιοχή Akihabara του Τόκιο και να κοστίζει γενικά λιγότερο από 5.000 δολάρια (46.33 δολάρια ΗΠΑ), παρόλο που η τιμή αυ
Δήλωση Bash
Οι δηλώσεις περίπτωσης Bash χρησιμοποιούνται γενικά για την απλοποίηση σύνθετων προϋποθέσεων όταν έχετε πολλές διαφορετικές επιλογές. Χρησιμοποιώντας τη δήλωση υποθέσεως αντί για τις ένθετες εάν δηλώσεις θα σας βοηθήσουν να κάνετε τα scripts bash σας πιο ευανάγνωστα και ευκολότερα συντηρητικά.







