Περιεχόμενο
- Πώς να προσθέσετε υπολογισμούς σε ένα σενάριο Bash
- Αριθμητική κινητής υποδιαστολής στο Bash
- Εναλλακτική σύνταξη για αριθμητική
Πώς να προσθέσετε υπολογισμούς σε ένα σενάριο Bash
Αν και το Bash είναι μια γλώσσα σεναρίου, έχει σχεδόν όλες τις δυνατότητες μιας γλώσσας προγραμματισμού γενικού σκοπού. Αυτό περιλαμβάνει αριθμητικές συναρτήσεις. Υπάρχουν πολλές επιλογές σύνταξης που μπορείτε να χρησιμοποιήσετε για να προκαλέσετε αριθμητική αξιολόγηση μιας έκφρασης. Ίσως το πιο ευανάγνωστο είναι το αφήνω εντολή. Για παράδειγμα:
ας m = (4 * 1024)
θα υπολογίσει 4 φορές 1024 και θα αποδώσει το αποτέλεσμα στη μεταβλητή "m".
Μπορείτε να εκτυπώσετε το αποτέλεσμα προσθέτοντας ένα ηχώ δήλωση:
ηχώ $ m
Μπορείτε επίσης να δημιουργήσετε ένα αρχείο που περιέχει τις εντολές Bash, οπότε θα πρέπει να προσθέσετε μια γραμμή στο πάνω μέρος του αρχείου που καθορίζει το πρόγραμμα που υποτίθεται ότι θα εκτελέσει τον κώδικα. Για παράδειγμα:
#! / bin / bash
υποθέτοντας ότι το εκτελέσιμο Bash βρίσκεται στο / bin / bash. Πρέπει επίσης να ορίσετε τα δικαιώματα του αρχείου σεναρίου σας, ώστε να είναι εκτελέσιμο. Υποθέτοντας ότι το όνομα του αρχείου σεναρίου είναι script1.sh, μπορείτε να ορίσετε τα δικαιώματα για να κάνετε το αρχείο εκτελέσιμο με την εντολή:
chmod + x script1.sh
Μετά από αυτό μπορείτε να το εκτελέσετε με την εντολή:
./script1.sh
Οι διαθέσιμες αριθμητικές λειτουργίες είναι παρόμοιες με αυτές σε τυπικές γλώσσες προγραμματισμού όπως Java και C. Εκτός από τον πολλαπλασιασμό, όπως απεικονίζεται παραπάνω, χρησιμοποιείτε την προσθήκη:
ας m = (5 + 5)
ή αφαίρεση:
ας m = (10 - 2)
ή διαίρεση:
ας m = (10/2)
ή modulo (το υπόλοιπο μετά από ακέραιο διαίρεση):
ας m = (11/2)
Όταν εφαρμόζεται μια πράξη στην ίδια μεταβλητή στην οποία εκχωρείται το αποτέλεσμα, μπορείτε να χρησιμοποιήσετε τους τυπικούς αριθμητικούς τελεστές αντιστοίχισης στενογραφίας, που αναφέρονται επίσης ως τελεστές σύνθεσης ανάθεσης. Για παράδειγμα, για επιπλέον, έχουμε:
((m + = 15))
που ισοδυναμεί με "m = m + 15". Για αφαίρεση έχουμε:
((m- = 3))
που ισοδυναμεί με "m = m - 3". Για διαίρεση έχουμε:
((m / = 5))
που ισοδυναμεί με "m = m / 5". Και για το modulo, έχουμε:
((m% = 10))
που ισοδυναμεί με "m = m% 10".
Επιπλέον, μπορείτε να χρησιμοποιήσετε το αύξηση και μείωση χειριστές:
((m ++))
είναι ισοδύναμο με "m = m + 1". Και
(( Μ-- ))
είναι ισοδύναμο με "m = m - 1".
Αριθμητική κινητής υποδιαστολής στο Bash
ο αφήνω Ο χειριστής λειτουργεί μόνο για ακέραιο αριθμητικό. Για την αριθμητική κινητής υποδιαστολής μπορείτε να χρησιμοποιήσετε για παράδειγμα την αριθμομηχανή GNU bc όπως φαίνεται σε αυτό το παράδειγμα:
ηχώ 32.0 + 1.4 | προ ΧΡΙΣΤΟΥ
Ο χειριστής "σωλήνα" | " μεταβιβάζει την αριθμητική έκφραση "32.0 + 1.4" στον υπολογιστή bc, ο οποίος επιστρέφει τον πραγματικό αριθμό. Η εντολή echo εκτυπώνει το αποτέλεσμα στην τυπική έξοδο.
Εναλλακτική σύνταξη για αριθμητική
Τα backticks (back single εισαγωγικά) μπορούν να χρησιμοποιηθούν για την αξιολόγηση μιας αριθμητικής έκφρασης όπως σε αυτό το παράδειγμα:
echo "expr $ m + 18"
Αυτό θα προσθέσει 18 στην τιμή της μεταβλητής "m" και στη συνέχεια θα εκτυπώσει το αποτέλεσμα.
Για να αντιστοιχίσετε την τιμή υπολογισμού σε μια μεταβλητή, μπορείτε να χρησιμοποιήσετε το σύμβολο ίσου χωρίς κενά γύρω από:
m = "expr $ m + 18"
Ένας άλλος τρόπος για την αξιολόγηση των αριθμητικών εκφράσεων είναι να χρησιμοποιήσετε διπλή παρένθεση. Για παράδειγμα:
((m * = 4))
Αυτό θα τετραπλασιάσει την τιμή της μεταβλητής "m".
Εκτός από την αριθμητική αξιολόγηση, το κέλυφος Bash παρέχει άλλες κατασκευές προγραμματισμού, όπως για-βρόχους, ενώ-βρόχους, υπό όρους και λειτουργίες και υπορουτίνες.