Bash Error Chain Construct

Giorgos Keramidas keramida at ceid.upatras.gr
Sun Jun 22 19:13:47 EEST 2008


On Sun, 22 Jun 2008 13:25:06 +0300, "basOS G" <noxelia at gmail.com> wrote:
> 2008/6/20 Giorgos Keramidas <keramida at ceid.upatras.gr>:
>> Ακριβώς.  Και μετά, όπως έγραψα και στο άλλο post, ξέχνα το εντελώς,
>> πριν μπεις στον πειρασμό να γράφεις κώδικα με δομές όπως:
>>
>>    cmd1 && {
>>        cmd2 || cmd3 || {
>>            cmd4 && {
>>                cmd5
>>            }
>>        }
>>        cmd6 || {
>>            cmd7 && cmd8 || {
>>                cmd9
>>            }
>>        }
>>    }
>>
>> Το ξέρω πως αυτό είναι `reductio ad absurdum'[1], και πιθανόν να μην
>> έχει ούτε ο Βάσος, ούτε κανείς άλλος σκοπό να καταλήξει έτσι ο κώδικάς
>> του.
>
> Γιατι να μην καταλληξουμε σε ενα συνδυασμο ; Σαφως if ;then ;elseif; if ;
> else ;if .... για κατι που εχει πανω απο δυο καταστασεις ή είναι μερος του
> program logic. Αλλα στην περιπτωση μου λει το script :
> --
> mkdir /fooks
> cp /tmp/skat /fooks/
> ---
> εαν γραφαμε
> --
>  mkdir /fooks || { echo "cannot create /fooks" && exit ;}
> --
> ειναι ενα πολυ απλο και χρήσιμο assert . Αλλο παραδειγμα στην php, perl
> exoume to
> ---
> kane_kati() or die("Den mporw");

Οταν δε θα αρκεί πλέον ένα απλό 'echo && exit' θα είναι μεγάλος ο
πειρασμός να πατήσεις απλά RETURN μέσα στο { ... } και να αρχίσεις να
γράφεις:

    mkdir /fooks || {
        echo "cannot create /fooks"
        something-else
        exit 1
    }

Έτσι γίνεται η αρχή.  Το τέλος είναι στο quoted έκτρωμα από το πρώτο
post παραπάνω :P



More information about the Linux-greek-users mailing list