Δημοσιεύτηκε: 31 Αύγ 2011, 00:38
από lucinos
Σκριπτάκια ή σενάρια γενικά λέγονται τα προγράμματα σε διερμηνευόμενες γλώσσες. Ο φλοιός μπορεί να λειτουργήσει ως διερμηνευόμενη γλώσσα προγραμματισμού και έτσι έχουμε τα σκριπτάκια φλοιού (shell script).

Στον φάκελο ~/playground δημιουργήστε ένα απλό αρχείο κειμένου με όνομα sktriptaki.sh και το ακόλουθο περιεχόμενο:
Κώδικας: Επιλογή όλων
#!/bin/bash
echo "Hello World!"


Μπορείτε να το δημιουργήσετε με όποιον τρόπο θέλετε, μέσω ενός κειμενογράφου όπως τού gedit ή τού nano αλλά λόγω τού μικρού μεγέθους ίσως ο ταχύτερος τρόπος είναι η cat όπως είδαμε στην ενότητα 3.2

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

Η πρώτη γραμμή #!/bin/bash είναι υποχρεωτική και εξηγεί (στον υπολογιστή) ότι θα χρησιμοποιηθεί το bash. Κάθε άλλη γραμμή που ξεκινάει με κάγκελο # είναι σχόλιο δηλαδή ο υπολογιστής απλά την αγνοεί (είναι όμως γενικά σημαντικό να σχολιάζουμε τα προγράμματά μας). Στο πρώτο μας σκριπτάκι έχουμε την γνώριμη εντολή echo "Hello World!"

Το bash φυσικά δεν είναι κατάλληλο για προγράμματα που κάνουμε με άλλες γλώσσες προγραμματισμού όπως πχ η c++ αλλά μην νομίσετε ότι δεν είναι δυνατό εργαλείο και ως γλώσσα προγραμματισμού. Θα ήταν καλό ίσως να επιστρέψουμε στα σκριπτάκια για περισσότερα σε αυτά τα θέματα.

Ωραία το δημιουργήσαμε. Πώς το τρέχουμε;
Κατ αρχήν το ~/playground δεν περιλαμβάνεται στην ατραπό, οπότε ένα σκέτο skriptaki.sh απλά δεν θα λειτουργήσει. Λεπτομέρεια: συχνά στο λίνουξ δημιουργούμε έναν φάκελο ~/bin που τον περιλαμβάνουμε στην ατραπό και ρίχνουμε μέσα εκτελέσιμα που θέλουμε να τα βλέπει μόνο ο χρήστης. Το ubuntu για να μάς διευκολύνει αν βρει τον φάκελο αυτό να υπάρχει, τον περιλαμβάνει αυτομάτως στην ατραπό οπότε αν τον δημιουργήσουμε την επόμενη φορά που θα μπούμε σε τερματικό έχει περιληφθεί χωρίς να χρειάζεται να κάνουμε τίποτα.

Αυτό που κανονικά πρέπει να τρέξουμε (βρισκόμαστε στον φάκελο ~/playground ) είναι:
Κώδικας: Επιλογή όλων
./skriptaki.sh

Αλλά έτσι απλά αυτό θα αποτύχει!
Θα μάς πει "άρνηση πρόσβασης". Ελπίζω να παρατηρήσατε ότι η αυτόματη συμπλήρωση δεν λειτουργεί, αυτό ίσως είναι μια ένδειξη.

θα θυμάστε ελπίζω ότι γενικά ξεπερνάμε την άρνηση πρόσβασης με το sudo. Δοκιμάστε λοιπόν:
Κώδικας: Επιλογή όλων
sudo ./skriptaki.sh

Ούτε αυτό θα λειτουργήσει. Δεν θα βρίσκει την εντολή. Το πρόβλημα δεν είναι ιδιοκτησίας. Είναι δημιουργημένο από εμάς, σε εμάς ανήκει, εμείς έχουμε κάθε δικαίωμα πάνω του. Δεν αναγνωρίζεται όμως ως εκτελέσιμο. Η κατάληξη .sh φυσικά δεν λέει τίποτα στο λίνουξ. Το αρχείο δεν έχει δικαιώματα εκτελέσιμου γενικότερα. Το θέμα τών δικαιωμάτων είναι σημαντικότατο και θα πρέπει να επιστρέψουμε. Προς το παρόν όμως ας αρκεστούμε να δώσουμε δικαιώματα εκτέλεσης στο συγκεκριμένο αρχείο. Τρέξτε:
Κώδικας: Επιλογή όλων
chmod +x skriptaki.sh


Τώρα μπορείτε να τρέξετε το σκριπτάκι απλά με:
Κώδικας: Επιλογή όλων
./skriptaki.sh