Πώς μπορώ να αυξήσω μια μεταβλητή στο Bash;

How Do I Increment Variable Bash



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

Παραδείγματα αύξησης μιας μεταβλητής στο Bash στο Linux Mint 20:

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







Παράδειγμα #1: Μετά την αύξηση μιας μεταβλητής:

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





Σε αυτό το σενάριο, έχουμε δηλώσει μια μεταβλητή x και την αρχικοποιήσαμε με την τιμή 0. Στη συνέχεια, έχουμε μια άλλη μεταβλητή, a, όπου εκχωρήσαμε την αυξημένη τιμή της μεταβλητής x. Τέλος, θα εκτυπωθεί η τιμή της μεταβλητής a στο τερματικό





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

$κτυπώ δυνατάIncrementVariable.sh



Δεδομένου ότι έχουμε αυξήσει τη μεταβλητή x και την έχουμε εκχωρήσει στη μεταβλητή a, επομένως, η τιμή της μεταβλητής a θα παραμείνει 0. Είναι έτσι επειδή η τιμή της μεταβλητής x (η οποία ήταν 0 αρχικά) εκχωρήθηκε για πρώτη φορά στη μεταβλητή a και μετά αυξήθηκε. Αυτή η έξοδος εμφανίζεται στην ακόλουθη εικόνα:

Παράδειγμα #2: Προαύξηση μιας μεταβλητής:

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

Σε αυτό το σενάριο, αντί να χρησιμοποιούμε μετα-προσαύξηση, χρησιμοποιήσαμε απλώς προ-προσαύξηση. Το υπόλοιπο του σεναρίου είναι σχεδόν ίδιο με το παράδειγμα #1.

Τώρα, όταν εκτελούμε αυτό το σενάριο, θα παρατηρήσουμε ότι η τιμή της μεταβλητής a θα είναι 1 αντί 0, επειδή, αυτή τη φορά, η τιμή της μεταβλητής x αυξήθηκε πρώτα και εκχωρήθηκε στη μεταβλητή a. Αυτή η έξοδος εμφανίζεται στην ακόλουθη εικόνα:

Παράδειγμα #3: Μετά την αύξηση μιας μεταβλητής εντός ενός βρόχου for:

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

Σε αυτό το σενάριο, υπάρχει ένας απλός βρόχος for με μεταβλητή μετρητή ή iterator i του οποίου η τιμή αυξάνεται μετά. Στη συνέχεια, έχουμε απλά εκτυπώσει την τιμή του i για κάθε επανάληψη.

Η έξοδος αυτού του σεναρίου εμφανίζεται στην ακόλουθη εικόνα:

Παράδειγμα #4: Προαύξηση μιας μεταβλητής εντός ενός βρόχου for:

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

Αυτό το σενάριο είναι το ίδιο όπως κάναμε στο παράδειγμα #3. Η αντικατάσταση του post-increment με το pre-increment είναι η μόνη διαφορά μεταξύ των δύο σεναρίων.

Η έξοδος αυτού του σεναρίου εμφανίζεται στην προσαρτημένη εικόνα. Αυτή η έξοδος είναι η ίδια με αυτή που φαίνεται στο παράδειγμα #3 και ίσως αναρωτιέστε γιατί; Αυτό συμβαίνει επειδή αυτή τη φορά, δεν εκχωρούμε την τιμή της μεταβλητής i σε καμία άλλη μεταβλητή. Αυτός είναι ο λόγος για τον οποίο οι επιδράσεις της προσαύξησης και της επαύξησης έχουν γίνει δυσδιάκριτες σε αυτά τα παραδείγματα.

Παράδειγμα #5: Αύξηση μιας μεταβλητής χρησιμοποιώντας while Loop με += Σημείωση:

Ο συμβολισμός += μπορεί επίσης να χρησιμοποιηθεί για να αυξήσει την τιμή μιας μεταβλητής και το παράδειγμα του σεναρίου που παρουσιάζεται, αυτό φαίνεται στην παρακάτω εικόνα:

Σε αυτό το σενάριο, έχουμε δηλώσει μια μεταβλητή i και έχουμε εκχωρήσει την τιμή 0. Τότε έχουμε έναν βρόχο while που συνεχίζει να επαναλαμβάνεται σε αυτήν τη μεταβλητή έως ότου η τιμή της είναι μικρότερη από 5. Μέσα σε αυτόν τον βρόχο, εκτυπώνουμε την τιμή αυτής της μεταβλητής και στη συνέχεια αυξάνοντας την τιμή του χρησιμοποιώντας το += συμβολισμό.

Η έξοδος αυτού του σεναρίου εμφανίζεται στην ακόλουθη εικόνα:

Παράδειγμα #6: Αύξηση μιας μεταβλητής με χρήση βρόχου while με +1 συμβολισμό:

Ο συμβολισμός +1 είναι επίσης ένας άλλος τρόπος αύξησης της τιμής μιας μεταβλητής κατά 1. Το παράδειγμα σεναρίου που το δείχνει αυτό φαίνεται στην παρακάτω εικόνα:

Αυτό το σενάριο είναι το ίδιο όπως κάναμε στο παράδειγμα #5. Η αντικατάσταση της σημείωσης += με τη σημείωση +1 είναι η μόνη διαφορά μεταξύ των δύο σεναρίων.

Η έξοδος αυτού του σεναρίου εμφανίζεται στην ακόλουθη εικόνα:

Συμπέρασμα:

Στο σημερινό σεμινάριο, μάθαμε έξι διαφορετικούς τρόπους αύξησης μιας μεταβλητής στο Bash. Ρίξαμε επίσης φως στις έννοιες της προσαύξησης και της επαύξησης και επεξηγήσαμε αυτές τις έννοιες χρησιμοποιώντας κατάλληλα παραδείγματα. Ανάλογα με τη λειτουργικότητα που απαιτείτε από το πρόγραμμά σας, μπορείτε είτε να προ-αυξήσετε είτε να αυξήσετε μετα-μεταβλητές τις μεταβλητές ή τους επαναληπτές σας. Χρησιμοποιώντας οποιονδήποτε από τους τρόπους αύξησης των μεταβλητών στο Bash στο Linux Mint 20, μπορείτε εύκολα να αυξήσετε την τιμή των επιθυμητών μεταβλητών κατά 1.