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