Οδηγός για αρχάριους στην BASH - Μέρος 1 - Hello World

Υπάρχουν πολλοί οδηγοί στο διαδίκτυο που δείχνουν πώς να δημιουργήσετε σενάρια Shell χρησιμοποιώντας BASH και αυτός ο οδηγός στοχεύει να δώσει μια ελαφρώς διαφορετική περιστροφή γιατί είναι γραμμένη από κάποιον που έχει πολύ μικρή εμπειρία scripting.

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

Ενώ η εμπειρία μου σε LINUX / UNIX shell scripting είναι περιορισμένη, είμαι προγραμματιστής λογισμικού από το εμπόριο και είμαι ένα dab χέρι σε scripting γλώσσες όπως PERL, PHP και VBScript.

Το σημείο αυτού του οδηγού είναι ότι θα μάθετε καθώς μαθαίνω και τυχόν πληροφορίες που θα παραλάβω θα σας μεταδώσω.

Ξεκινώντας

Υπάρχει προφανώς πολλή θεωρία που θα μπορούσα να σας μεταφέρω άμεσα, όπως η περιγραφή των διαφορετικών τύπων κελύφους και τα πλεονεκτήματα της χρήσης του BASH έναντι του KSH και του CSH.

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

Το μόνο που χρειάζεστε για να ακολουθήσετε αυτόν τον οδηγό είναι ένας επεξεργαστής κειμένου και ένα τερματικό που εκτελεί BASH (το προεπιλεγμένο κέλυφος στις περισσότερες διανομές Linux).

Επεξεργαστές κειμένου

Άλλοι οδηγοί που έχω διαβάσει έχουν προτείνει ότι χρειάζεστε ένα πρόγραμμα επεξεργασίας κειμένου που περιλαμβάνει έγχρωμη κωδικοποίηση εντολών και οι συνιστώμενοι επεξεργαστές είναι είτε VIM είτε EMACS .

Η χρωματική κωδικοποίηση είναι ωραία καθώς υπογραμμίζει τις εντολές καθώς τις πληκτρολογείτε, αλλά για τον απόλυτο αρχάριο θα μπορούσατε να περάσετε τις πρώτες εβδομάδες μάθησης VIM και EMACS χωρίς να γράψετε μία γραμμή κώδικα.

Από τις δύο προτιμώ EMACS, αλλά για να είμαι ειλικρινής προτιμώ να χρησιμοποιώ έναν απλό επεξεργαστή όπως nano , gedit ή leafpad.

Εάν γράφετε σενάρια στον δικό σας υπολογιστή και γνωρίζετε ότι θα έχετε πάντα πρόσβαση σε ένα γραφικό περιβάλλον τότε μπορείτε να επιλέξετε τον επεξεργαστή που λειτουργεί καλύτερα για εσάς και μπορεί να είναι γραφικός όπως το GEdit ή ένα πρόγραμμα επεξεργασίας που εκτελείται απευθείας στο τερματικό όπως το nano ή το vim.

Για τους σκοπούς αυτού του οδηγού θα χρησιμοποιήσω το nano καθώς είναι εγκατεστημένο στην πλειοψηφία των Linux διανομών και είναι επομένως πιθανό να έχετε πρόσβαση σε αυτό.

Άνοιγμα ενός παραθύρου τερματικού

Εάν χρησιμοποιείτε διανομή Linux με γραφική επιφάνεια εργασίας, όπως το Linux Mint ή το Ubuntu, μπορείτε να ανοίξετε ένα παράθυρο τερματικού πιέζοντας CTRL + ALT + T.

Πού να βάζετε τα σενάρια σας

Για τους σκοπούς αυτού του σεμιναρίου μπορείτε να τοποθετήσετε τα σενάρια σας σε ένα φάκελο κάτω από τον αρχικό φάκελο.

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

cd ~

Η εντολή cd αντιπροσωπεύει τον κατάλογο αλλαγής και η tilda (~) είναι μια συντόμευση για τον αρχικό σας φάκελο.

Μπορείτε να ελέγξετε ότι βρίσκεστε στη σωστή θέση πληκτρολογώντας την ακόλουθη εντολή:

pwd

Η εντολή pwd θα σας δείξει τον τρέχοντα κατάλογο εργασίας σας (όπου βρίσκεστε στο δέντρο καταλόγου). Στην περίπτωσή μου επέστρεψε / home / gary.

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

mkdir scripts

Αλλάξτε το φάκελο των νέων σεναρίων πληκτρολογώντας την ακόλουθη εντολή:

cd scripts

Το πρώτο σας σενάριο

Είναι συνηθισμένο όταν μαθαίνουμε πώς να προγραμματίζουμε για να κάνουμε το πρώτο πρόγραμμα να εξάγει απλά τις λέξεις "Hello World".

Από το φάκελο των σεναρίων καταχωρίστε την ακόλουθη εντολή:

nano helloworld.sh

Τώρα εισαγάγετε τον ακόλουθο κώδικα στο νανο-παράθυρο.

#! / bin / bash echo "Γεια σου κόσμο"

Πατήστε CTRL + O για να αποθηκεύσετε το αρχείο και CTRL + X για έξοδο από το nano.

Το ίδιο το σενάριο έχει ως εξής:

Το #! / Bin / bash πρέπει να συμπεριληφθεί στην κορυφή όλων των σεναρίων που γράφετε καθώς επιτρέπει στους ερμηνευτές και το λειτουργικό σύστημα να γνωρίζουν πώς να χειρίζονται το αρχείο. Βασικά θυμηθείτε να το βάλετε και να ξεχάσετε γιατί το κάνετε.

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

Σημειώστε ότι αν θέλετε να εμφανίσετε περισσότερες από μία λέξεις, πρέπει να χρησιμοποιήσετε διπλά εισαγωγικά (") γύρω από τις λέξεις.

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

sh helloworld.sh

Πρέπει να εμφανίζονται οι λέξεις "γεια κόσμο".

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

./helloworld.sh

Οι πιθανότητες είναι ότι αν εκτελέσετε αμέσως αυτή την εντολή στο τερματικό σας, θα λάβετε ένα σφάλμα αδειών.

Για να παραχωρήσετε δικαιώματα για να εκτελέσετε τη δέσμη ενεργειών, πληκτρολογήστε τα εξής:

sudo chmod + x helloworld.sh

Τι συνέβη πραγματικά εκεί; Γιατί είχατε τη δυνατότητα να τρέξετε το sh helloworld.sh χωρίς να αλλάξετε δικαιώματα αλλά να εκτελείτε ./helloworld.sh προκάλεσε ένα πρόβλημα;

Η πρώτη μέθοδος φορτώνει τον interpreter bash που παίρνει το helloworld.sh ως είσοδο και επεξεργάζεται τι πρέπει να κάνει με αυτό. Ο διερμηνέας bash έχει ήδη δικαιώματα εκτέλεσης και χρειάζεται απλώς να εκτελέσει τις εντολές στο σενάριο.

Η δεύτερη μέθοδος επιτρέπει στο λειτουργικό σύστημα να επεξεργαστεί τι πρέπει να κάνει με το σενάριο και επομένως απαιτεί ένα εκτελέσιμο bit για να εκτελέσει.

Το παραπάνω σενάριο ήταν εντάξει, αλλά τι συμβαίνει εάν θέλετε να εμφανίζονται τα εισαγωγικά;

Υπάρχουν διάφοροι τρόποι για να επιτευχθεί αυτό. Για παράδειγμα, μπορείτε να βάλετε μια πίσω κάθετο πριν τα εισαγωγικά ως εξής:

echo \ "hello world \"

Αυτό θα παράγει την παραγωγή "hello world".

Περιμένετε ένα λεπτό όμως, τι εάν θέλετε να εμφανίσετε \ "hello world \";

Λοιπόν μπορείτε να ξεφύγετε από τους χαρακτήρες διαφυγής επίσης

echo \\ "\" γεια κόσμο \\ "\"

Αυτό θα παράγει την έξοδο \ "hello world \".

Τώρα ξέρω τι σκέφτεστε. Αλλά θέλω πραγματικά να εμφανίσω \\ "\" hello world \\ "\"

Η χρήση ηχώ με όλους αυτούς τους χαρακτήρες διαφυγής μπορεί να γίνει αρκετά ανόητος. Υπάρχει μια εναλλακτική εντολή που μπορείτε να χρησιμοποιήσετε, που ονομάζεται printf.

Για παράδειγμα:

printf '% s \ n "" \\ "\" γεια κόσμο \\ "\"

Λάβετε υπόψη ότι το κείμενο που θέλουμε να εμφανίσουμε βρίσκεται ανάμεσα σε μοναδικά εισαγωγικά. Η εντολή printf εξάγει κείμενο από το σενάριό σας. Το% s σημαίνει ότι θα εμφανίσει μια συμβολοσειρά, το \ n εξάγει μια νέα γραμμή.

Περίληψη

Δεν έχουμε καλύψει πολύ το έδαφος στο πρώτο μέρος, αλλά ελπίζουμε ότι έχετε κάνει το πρώτο σενάριό σας να λειτουργεί.

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