Αριθμητική σε Bash

Πώς να προσθέσετε τους υπολογισμούς σε ένα σενάριο Bash

Αν και το Bash είναι μια γλώσσα scripting, έχει σχεδόν όλες τις δυνατότητες μιας γλώσσας προγραμματισμού γενικού σκοπού. Αυτό περιλαμβάνει αριθμητικές λειτουργίες. Υπάρχουν διάφορες επιλογές σύνταξης που μπορείτε να χρησιμοποιήσετε για να προκληθεί αριθμητική αξιολόγηση μιας έκφρασης. Ίσως το πιο ευανάγνωστο είναι η εντολή let . Για παράδειγμα

αφήστε "m = 4 * 1024"

θα υπολογίσει 4 φορές 1024 και θα αντιστοιχίσει το αποτέλεσμα στη μεταβλητή "m".

Μπορείτε να εκτυπώσετε το αποτέλεσμα προσθέτοντας μια δήλωση ηχώ :

ας "m = 4 * 1024" echo $ m

Μπορείτε να το δοκιμάσετε από τη γραμμή εντολών πληκτρολογώντας τον ακόλουθο κώδικα:

ας "m = 4 * 1024". echo $ m

Μπορείτε επίσης να δημιουργήσετε ένα αρχείο που περιέχει τις εντολές Bash, οπότε θα πρέπει να προσθέσετε μια γραμμή στην κορυφή του αρχείου που καθορίζει το πρόγραμμα που υποτίθεται ότι θα εκτελέσει τον κώδικα. Για παράδειγμα:

#! / bin / bash αφήστε "m = 4 * 1024" echo $ m

υποθέτοντας ότι το εκτελέσιμο αρχείο Bash βρίσκεται στο / bin / bash . Επίσης, πρέπει να ορίσετε τα δικαιώματα του αρχείου δέσμης ενεργειών έτσι ώστε να είναι εκτελέσιμα. Υποθέτοντας ότι το όνομα του αρχείου δέσμης ενεργειών είναι script1.sh , μπορείτε να ορίσετε τα δικαιώματα για να κάνετε το εκτελέσιμο αρχείο με την εντολή:

chmod 777 script1.sh

Μετά από αυτό μπορείτε να το εκτελέσετε με την εντολή:

./script1.sh

Οι διαθέσιμες αριθμητικές λειτουργίες είναι παρόμοιες με εκείνες στις τυποποιημένες γλώσσες προγραμματισμού όπως η Java και η C. Εκτός από τον πολλαπλασιασμό, όπως φαίνεται παραπάνω, χρησιμοποιείτε την προσθήκη:

ας "m = a + 7"

ή αφαίρεση:

αφήστε "m = a - 7"

ή διαίρεση:

ας "m = a / 2"

ή modulo (το υπόλοιπο μετά από ακέραιη διαίρεση):

ας "m = a% 100"

Όταν μια διαδικασία εφαρμόζεται στην ίδια μεταβλητή στην οποία έχει εκχωρηθεί το αποτέλεσμα, μπορείτε να χρησιμοποιήσετε τους τυπικούς αριθμητικούς χειριστές εκχώρησης στενογραφικών σημείων, οι οποίοι επίσης αναφέρονται ως χειριστές εκχώρησης σύνθετων στοιχείων. Για παράδειγμα, για προσθήκη, έχουμε:

αφήστε "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".

Και τότε υπάρχει ο τριμερής χειριστής "ερωτηματικού-παχέος εντέρου", ο οποίος επιστρέφει μία από τις δύο τιμές ανάλογα με το αν η συγκεκριμένη συνθήκη είναι αληθής ή ψευδής. Για παράδειγμα

ας "k = (m <9); 0: 1"

Η δεξιά πλευρά αυτής της δήλωσης εκχώρησης αξιολογείται ως "0" εάν η μεταβλητή "m" είναι μικρότερη από 9. Διαφορετικά, αξιολογείται σε 1. Αυτό σημαίνει ότι η μεταβλητή "k" έχει εκχωρηθεί "0" εάν το "m" από 9 και "1" διαφορετικά.

Η γενική μορφή του χειριστή ερωτήσεων και παχέος εντέρου είναι:

κατάσταση ? τιμή-if-true: value-if-false

Αριθμητική Πλατφόρμας στο Bash

Ο τελεστής λει- τουργίας λειτουργεί μόνο για αριθμητική ακέραιη. Για αριθμητική επίπλευσης με πλωτό σημείο μπορείτε να χρησιμοποιήσετε για παράδειγμα τον υπολογισμό GNU bc όπως απεικονίζεται σε αυτό το παράδειγμα:

echo "32.0 + 1.4" | προ ΧΡΙΣΤΟΥ

Ο χειριστής "σωλήνων" "|" " περνά την αριθμητική έκφραση "32.0 + 1.4" στον αριθμομηχανή bc, ο οποίος επιστρέφει τον πραγματικό αριθμό. Η εντολή echo εκτυπώνει το αποτέλεσμα στην τυπική έξοδο.

Εναλλακτική Σύνταξη για την Αριθμητική

Τα backticks (πίσω απλά εισαγωγικά) μπορούν να χρησιμοποιηθούν για να αξιολογήσουν μια αριθμητική έκφραση όπως σε αυτό το παράδειγμα:

echo `expr $ m + 18`

Αυτό θα προσθέσει 18 στην τιμή της μεταβλητής "m" και στη συνέχεια να εκτυπώσετε το αποτέλεσμα.

Για να αντιστοιχίσετε την υπολογισμένη τιμή σε μια μεταβλητή, μπορείτε να χρησιμοποιήσετε το ίση σημάδι χωρίς κενά γύρω από αυτήν:

m = 'expr $ m + 18'

Ένας άλλος τρόπος αξιολόγησης των αριθμητικών εκφράσεων είναι η χρήση διπλών παρενθέσεων. Για παράδειγμα:

((m * = 4))

Αυτό θα τετραπλασιάσει την τιμή της μεταβλητής "m".

Εκτός από την αριθμητική αξιολόγηση, το κέλυφος Bash παρέχει και άλλα κατασκευάσματα προγραμματισμού, όπως for-loops , while-loops , conditionals και λειτουργίες και υπορουτίνες .