Matlab....lmdown

Giorgos Keramidas keramida at ceid.upatras.gr
Sun Dec 3 17:51:37 EET 2006


On 2006-12-03 17:38, Nikolaos Korkakakis <korkakak at gmail.com> wrote:
>On 12/3/06, Giorgos Keramidas <keramida at ceid.upatras.gr> wrote:
>>Το interaction του running environment με ένα function που θα τρέχει ως
>>'internal' command σε ένα shell-script είναι από τα πιο περίπλοκα και
>>`περίεργα' πράγματα.  Έτσι το να θέσεις μια μεταβλητή με όνομα ARCH μέσα
>>σε μια shell function, μπορεί να μην έχει ακριβώς την `παρενέργεια' που
>>θέλεις.  Για παράδειγμα προσπάθησε να καταλάβεις γιατί η έξοδος του
>>παρακάτω shell script είναι αυτή που είναι...
>>
>>    $ cat -n foo.sh
>>         1  #!/bin/sh
>>         2
>>         3  func1 ()
>>         4  {
>>         5          ARCH=1
>>         6  }
>>         7
>>         8  func2 ()
>>         9  {
>>        10          ( ARCH=2 )
>>        11  }
>>        12
>>        13  func3 ()
>>        14  {
>>        15          ARCH=3
>>        16  }
>>        17
>>        18  func1           ; echo "ARCH=$ARCH"
>>        19  ARCH=''         ; echo "ARCH=$ARCH"
>>        20  func2           ; echo "ARCH=$ARCH"
>>        21  func3           ; echo "ARCH=$ARCH"
>>    $ sh foo.sh
>>    ARCH=1
>>    ARCH=
>>    ARCH=
>>    ARCH=3
>>    $
> 
> Oti ginete kai sthn C otan se ena "global" pointer kaneis malloc kai
> free kai to bazeis alla data panw (ektos isws apo to ARCH=" pou isws
> na 8elei ena mikro kolpo) h opws sthn Java otan paizeis me ena String.
> Kamia diafora. Ektos isws apo ta kapoia built in xarakthristika ths
> glwssas ( pq h topikothta tou (FOO = "lala" ) na einai mesa sthn
> paren8esh )

Εντελώς καμία σχέση όμως.

Για την τοπικότητα ή μη των shell vars, ο καλύτερος οδηγός είναι το
Single Unix Specification, αλλά το θέμα μας δεν είναι αυτό.  Το θέμα
είναι ότι το script εξαρτάται από implementation specific συμπεριφορά
του shell, που είναι *ΚΑΚΗ* *ΙΔΕΑ*.

>> Εγώ τον έλεγχο για valid architecture θα τον έγραφα με κάτι που
>> επιστρέφει 0 on success, και μη μηδενικό return value on error, και τα
>> σχόλια δε θα τα έβαζα στο πλάι, σαν να είναι second-class citizens:
>> [...]
> Sumfwnoi. Alla an analogistw to ti uparxei kai ti mou prosferei o
> antagwnismos proswpika eimai upereuxaristhmenos.

Εξακολουθεί να είναι απαίσιο.

> Sigoura einai kafrikos o tropos pou grapsane kwdika. Alla den pauei na
> einai uperoxo to oti kapoios ekatse kai egrapse ena upotupwdes doc

Η ποιότητα στο software, και μάλιστα σε software που το ΠΛΗΡΩΣΕΣ αδρά,
δεν είναι κάτι που μπορεί να θεωρηθεί ότι στο κάνει "χάρισμα" ο software
vendor.  Η ποιότητα θα πρέπει να είναι *απαίτηση* των πελατών και αν ο
vendor δεν την παρέχει, θα πρέπει να είναι έτοιμος να ακούσει κάφρικα
σχόλια για τον κάφρικο κώδικά του.

> na exei kapoios tritos ena mpousoula  kai na kanei mia duo allages.
> Uparxoun kai alla scripts mesa sto paketaki me polu pio endiaferonta
> pragmatakia :-)

Το οποίο δεν αναιρεί σε τίποτα την αρχική μου πρόταση ότι υπάρχουν πολλά
"απαίσια" πράγματα εκεί μέσα.  Μπορούμε να το παρατήσουμε το θέμα και να
δούμε τι θα πει ο Θάνος μετά το δεύτερο patch που του στειλα, για το
"lmdown" αυτή τη φορά;




More information about the Migrate2linux mailing list