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

Τι να ξέρετε

  • Χρησιμοποιήστε το αφήνω εντολή για την παραγωγή της αριθμητικής αξιολόγησης μιας έκφρασης, όπως in έστω m=(4 * 1024).
  • Οι διαθέσιμες αριθμητικές πράξεις είναι παρόμοιες με εκείνες σε τυπικές γλώσσες προγραμματισμού όπως η Java και η C.
  • Ο τελεστής let λειτουργεί μόνο για ακέραια αριθμητική. Για την αριθμητική κινητής υποδιαστολής, χρησιμοποιήστε το GNU π.χ. αριθμομηχανή.

Αν και η 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 π.χ. αριθμομηχανή όπως φαίνεται σε αυτό το παράδειγμα:

ηχώ 32,0+1,4 | προ ΧΡΙΣΤΟΥ

Ο χειριστής "pipe" "|" μεταβιβάζει την αριθμητική παράσταση "32,0 + 1,4" στην αριθμομηχανή bc, η οποία επιστρέφει τον πραγματικό αριθμό. ο ηχώ εντολή εκτυπώνει το αποτέλεσμα στην τυπική έξοδο.

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

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

echo `expr $m + 18`

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

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

m=`expr $m + 18`

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

(( m*=4 ))

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

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