5 Παραδείγματα σεναρίων Bash που θα σας βοηθήσουν να μάθετε προγραμματισμό Linux

Το Bash scripting είναι ένας από τους πιο δημοφιλείς, προσβάσιμους τρόπους προγραμματισμού του υπολογιστή σας Linux. Αυτά τα απλά παραδείγματα σεναρίων θα σας βοηθήσουν να κατανοήσετε τη διαδικασία και να σας μυήσουν στα βασικά του προγραμματισμού Bash.

1. Πώς να εκτυπώσετε το Hello World στο Bash

Το παράδειγμα Hello World είναι ένας εξαιρετικός τρόπος για να μάθετε για οποιαδήποτε γλώσσα προγραμματισμού και το Bash δεν αποτελεί εξαίρεση.

Δείτε πώς μπορείτε να εκτυπώσετε το “Hello World” χρησιμοποιώντας το Bash:

  • Ανοίξτε ένα πρόγραμμα επεξεργασίας κειμένου και ξεκινήστε την επεξεργασία ενός νέου αρχείου που περιέχει τις ακόλουθες γραμμές κώδικα.
  • Η πρώτη γραμμή των σεναρίων Bash θα πρέπει πάντα να μοιάζει με αυτό:
     #!/bin/bash 

    Η εντολή Shebang (#!/bin/bash) είναι απαραίτητη καθώς το κέλυφος τη χρησιμοποιεί για να αποφασίσει πώς θα εκτελέσει το σενάριο. Σε αυτήν την περίπτωση, χρησιμοποιεί τον διερμηνέα Bash.

  • Οποιαδήποτε γραμμή αρχίζει με σύμβολο # είναι σχόλιο. Η γραμμή shebang είναι μια ειδική περίπτωση, αλλά μπορείτε να χρησιμοποιήσετε τα δικά σας σχόλια για να εξηγήσετε τον κώδικά σας. Προσθέστε ένα σχόλιο στη γραμμή 2, π.χ.
      
  • Μπορείτε να εκτυπώσετε σε τυπική έξοδο χρησιμοποιώντας την εντολή echo, ακολουθούμενη από την τιμή που θέλετε να εκτυπώσετε. Προσθέστε τα ακόλουθα στη γραμμή 3:
     echo "Hello World" 
  • Αποθηκεύστε το σενάριο, κατά προτίμηση με επέκταση .sh, π.χ. hello_world.sh. Η επέκταση δεν είναι απαίτηση, αλλά είναι μια σύμβαση στην οποία είναι χρήσιμο να τηρείτε.
  • Για να εκτελέσετε το σενάριό σας, κάντε το αρχείο εκτελέσιμο. Χρησιμοποιήστε την εντολή chmod (“αλλαγή λειτουργίας”) μαζί με το όρισμα +x (“εκτελέσιμο”) και το όνομα του σεναρίου του φλοιού σας:
     chmod +x hello_world.sh 
  • Χρησιμοποιήστε αυτήν την εντολή για να εκτελέσετε το σενάριο μέσα από τον κατάλογό του:
     ./hello_world.sh 
  • Όταν εκτελείται το σενάριο, θα εκτυπώσει το κείμενο “Hello World” στο τερματικό σας:
  •   Ανωνυμοποιήστε την κυκλοφορία Linux με ProxyChains και Tor

    2. Δημιουργήστε έναν κατάλογο διαβάζοντας την εισαγωγή

    Από τα σενάρια σας, μπορείτε να εκτελέσετε οποιοδήποτε πρόγραμμα που θα μπορούσατε κανονικά να εκτελείτε στη γραμμή εντολών. Για παράδειγμα, μπορείτε να δημιουργήσετε έναν νέο κατάλογο από το σενάριό σας χρησιμοποιώντας την εντολή mkdir.

  • Ξεκινήστε με την ίδια γραμμή shebang όπως πριν:
     #!/bin/bash 
  • Ζητήστε από το χρήστη ένα όνομα καταλόγου, χρησιμοποιώντας την εντολή echo όπως πριν:
     echo "Enter new directory name:" 
  • Χρησιμοποιήστε την ενσωματωμένη εντολή ανάγνωσης για να λάβετε τα δεδομένα χρήστη. Το μεμονωμένο όρισμα ονομάζει μια μεταβλητή στην οποία το κέλυφος θα αποθηκεύσει την είσοδο:
     read newdir 
  • Όταν πρέπει να χρησιμοποιήσετε την τιμή που είναι αποθηκευμένη σε μια μεταβλητή, τοποθετήστε το πρόθεμα του ονόματός της με ένα σύμβολο δολαρίου ($). Μπορείτε να περάσετε τα περιεχόμενα της μεταβλητής εισόδου ως όρισμα στην εντολή mkdir, για να δημιουργήσετε έναν νέο κατάλογο:
     mkdir $newdir 
  • Όταν εκτελείτε αυτό το σενάριο, θα σας ζητήσει να εισάγετε. Εισαγάγετε ένα έγκυρο όνομα καταλόγου και θα δείτε ότι το σενάριο το δημιουργεί στον τρέχοντα κατάλογο σας:
  • 3. Δημιουργήστε έναν κατάλογο χρησιμοποιώντας ορίσματα γραμμής εντολών

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

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

      Πώς να κάνετε OCR από τη γραμμή εντολών Linux χρησιμοποιώντας το Tesseract
  • Δημιουργήστε έναν κατάλογο χρησιμοποιώντας την εντολή mkdir από το προηγούμενο παράδειγμα. Ωστόσο, αυτή τη φορά, χρησιμοποιήστε την ενσωματωμένη μεταβλητή $1:
     #!/bin/bash
    mkdir $1
  • Εκτελέστε το σενάριο, αυτή τη φορά μεταβιβάζοντας ως όρισμα το όνομα ενός νέου καταλόγου που επιλέξατε:
     ./arg_dir.sh Test 
  • Ίσως αναρωτιέστε τι θα συμβεί εάν εκτελέσετε το σενάριο χωρίς να παρέχετε κανένα επιχείρημα. Δοκιμάστε το και δείτε? θα πρέπει να λάβετε ένα μήνυμα σφάλματος που ξεκινά το “usage: mkdir”:

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

  • Όπως πάντα, ξεκινήστε με τη σειρά shebang:
     #!/bin/bash 
  • Πριν καλέσετε το mkdir, ελέγξτε για ένα κενό πρώτο όρισμα (δηλαδή χωρίς ορίσματα). Μπορείτε να το κάνετε αυτό χρησιμοποιώντας τη δήλωση if του Bash που εκτελεί κώδικα με βάση μια συνθήκη:
     if ["$1" = ""]; then 
  • Εάν το πρώτο όρισμα είναι κενό, εκτυπώστε ένα σφάλμα και βγείτε από το σενάριο:
         echo "Please provide a new directory name as the first argument"
        exit
  • Η ελαφρώς παράξενη λέξη-κλειδί “fi” (“αν” αντιστράφηκε) σηματοδοτεί το τέλος μιας δήλωσης if στο Bash:
     fi 
  • Το σενάριό σας μπορεί τώρα να συνεχίσει όπως πριν, για να χειριστεί την περίπτωση όταν υπάρχει ένα όρισμα:
     mkdir $1 
  • Όταν εκτελείτε αυτήν τη νέα έκδοση του σεναρίου, θα λάβετε ένα μήνυμα εάν ξεχάσετε να συμπεριλάβετε ένα όρισμα:

      Πώς να αποθηκεύετε αρχεία στο cloud δωρεάν με το Ice Drive στο Linux

    4. Διαγράψτε ένα αρχείο χρησιμοποιώντας μια συνάρτηση Bash

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

    Ακολουθεί ένα παράδειγμα συνάρτησης που διαγράφει ένα δεδομένο αρχείο.

  • Ξεκινήστε με τη γραμμή shebang:
     #!/bin/bash 
  • Ορίστε μια συνάρτηση γράφοντας το όνομά της ακολουθούμενη από κενές παρενθέσεις και εντολές μέσα σε σγουρές αγκύλες:
     del_file() {
        echo "deleting $1"
        rm $1
    }

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

     del_file test.txt 

  • Όταν καλείτε μια συνάρτηση, θα ορίσει το ειδικό $; τιμή με την κατάσταση εξόδου της τελευταίας εντολής που εκτελεί. Η κατάσταση εξόδου είναι χρήσιμη για τον έλεγχο σφαλμάτων. σε αυτό το παράδειγμα, μπορείτε να ελέγξετε εάν η εντολή rm πέτυχε:

     if [ $? -ne 0 ]; then
        echo "Sorry, could not delete the file"
    fi

    5. Δημιουργήστε μια Βασική Αριθμομηχανή για Αριθμητικούς Υπολογισμούς

    Αυτό το τελευταίο παράδειγμα δείχνει μια πολύ βασική αριθμομηχανή. Όταν το εκτελείτε, θα εισαγάγετε δύο τιμές και, στη συνέχεια, θα επιλέξετε μια αριθμητική πράξη για να τις εκτελέσετε.

    Εδώ είναι ο κώδικας για το calc.sh:

     #!/bin/bash


    echo "Enter first number: "
    read a

    echo "Enter second number: "
    read b


    echo "Enter Arithmetic Operation Choice :"
    echo "1. Addition"
    echo "2. Subtraction"
    echo "3. Multiplication"
    echo "4. Division"
    read choice


    case $choice in
      1)
     result=`echo $a + $b | bc`
      ;;

      2)
     result=`echo $a - $b | bc`
     ;;

      3)
     result=`echo $a \* $b | bc`
      ;;

      4)
     result=`echo "scale=2; $a / $b" | bc`
      ;;
    esac

    echo "Result: $result"

    Σημειώστε τη χρήση της περίπτωσης … esac που είναι το ισοδύναμο του Bash της εντολής switch από άλλες γλώσσες. Σας επιτρέπει να δοκιμάσετε μια τιμή – σε αυτήν την περίπτωση, τη μεταβλητή επιλογή – σε πολλές σταθερές τιμές και να εκτελέσετε τον σχετικό κώδικα.

    Αυτό το σενάριο χρησιμοποιεί την εντολή bc για να πραγματοποιήσει κάθε υπολογισμό.