provlima se bash scripting

Michael Iatrou iatrou at serverhive.com
Tue Dec 5 23:46:31 EET 2006


When the date was Tuesday 05 December 2006 18:11, Nick Demou wrote:

> minor correction: κάθε κλήση του scriptoni.sh πρέπει να ξεκινα με ./
> (εκτός αν είσαι σε directory που είναι στο path)

Στα περισσότερα Σύγχρονα Λειτουργικά Συστήματα(ΤΜ) το `.' είναι στο PATH των 
χρηστών (όχι του root). Άρα, όχι, το `./' δεν χρειάζεται (hint: δεν κάνει 
κανείς πειράματα με κώδικα του Ρικούδη ως root, έχω ολόκληρη συλλογή από 
fortune cookies που μπορούν να επαληθεύσουν την επικινδυνότητα του 
εγχειρήματος). Γενικότερα, πριν σπεύσεις να διορθώσεις τον Ρικούδη, σου 
προτείνω να το σκέφτεσαι λίγο παραπάνω, η πιθανότητα να έχεις εσύ δίκιο 
είναι μικρότερη απ' αυτή του να κερδίσεις το ΛΟΤΤΟ.

> ενδιαφέρον το τέχνασμα με το . (αν και δεν είμαι καθόλου οπαδός αυτού
> του τύπου shortcuts που συγκεντρόνουν πολύ δύναμη σε ένα χαρακτήρα 2
> επί 2 pixel και που αν/όταν ξεχάσεις έναν ακόμα αόρατο χαρακτήρα
> (space) θα κάνουν κάτι τελείως διαφορετικό και κάλιστα δεν θα βγάλουν 
> καν parsing error. Είναι σαν τις γλώσες που δεν απαιτούν να τους
> δηλώσεις τις μεταβλητές αλλά ταυτόχρονα τους δήνουν και μια αυθέρετη
> και καθόλου απίθανη τιμή για να κάνεις debug καμιά ώρα μέχρι να
> καταλάβεις τι στράβωσε)

Δεν είναι μόνο ότι κάνεις το aspell να σηκώσει load σε Core Duo, είναι ότι 
καταφέρνεις να έχεις περισσότερες ανακρίβειες από ολόκληρες γραμμές 
κειμένου.

* Το `.' δεν είναι τέχνασμα, είναι documented feature.
* To `.' δεν είναι shortcut, είναι shell bultin command.
* To `.' δεν έχει πολύ δύναμη, κάνει ένα και μόνο απλό πράγμα.
* Το `.' δεν έχει προκαθορισμένο μέγεθος 2Χ2, εξαρτάται από τον τύπο και το
         μέγεθος της γραμματοσειράς, την ανάλυση τη οθόνης κλπ.
* Αν παραλείψεις ένα κενό ανάμεσα στο `.' και το filename, κατά πάσα
         πιθανότητα θα σου βγάλει λάθος (εκτός κι αν υπάρχει το `.file' και
         είναι εκτελέσιμο)
* Αν σου βγάλει error, δεν θα είναι parsing αφού έτσι κι αλλιώς είναι
         συντακτικά ορθό.
* Τέτοια λάθη δεν έχουν καμία σχέση τα dynamic/weak typing χαρακτηριστικά
         των γλωσσών προγραμματισμού.
* Καμία σοβαρή γλώσσα δεν αρχικοποιεί μεταβλητές σε "αυθαίρετες και καθόλου
         απίθανες τιμές". Είναι είτε συγκεκριμένες documented τιμές, ή
         επίσης documented undefined.
         
Έλεος, για τη ψυχική ηρεμία όλων μας, μη το κουράζεις!

-- 
 Michael Iatrou




More information about the Linux-greek-users mailing list