Bashit (script για automount usb disk)

d.a.glynos glynos at storm.cs.unipi.gr
Mon Jan 30 03:31:10 EET 2006


On Mon, 30 Jan 2006, basil wrote:
> Λοιπον καλα μου παιδια
> Πρωτον (χωρις παρεξηγηση) : πως μπορειτε και γραφετε scriptakia σε bash?

Me text editor.

> Δευτερον. Επειδη τη μιση μερα και σημερα ειμαι μπροστα απο το pc σε εναν
> editor για ενα σχεικά απλο σκριπτ θα ήθελα καποιες διευκρινισεις: Εχουμε
> το αρχειο /etc/usbmount/partitions.conf το οποίο έχει τη γραμμή
> PARTITIONS="-uuid=0B26-1FE8,-mpoint=/mnt/flash64 \
> -label=MTOOL,-mpoint=/mnt/mj"
>
> και σε ενα σκριπτ που εκτελειται οταν μπαινει καποιος δισκος έχουμε
>  . /etc/usbmount/partitions.conf
>
> for v in "$PARTITIONS"; do

edw einai to la8os sou. ennoeis $PARTITIONS kai oxi "$PARTITIONS".

gia paradeigma

user at host:~$ PORTOKALI="3uno agouro kitrino kourdisto"
user at host:~$ for i in $PORTOKALI; do echo $i; done
3uno
agouro
kitrino
kourdisto
user at host:~$ for i in "$PORTOKALI"; do echo $i; done
3uno agouro kitrino kourdisto

Opws vlepeis, me double quotes (" ") trigyrw les sto shell na to kanei
evaluate san ena string. Diaforetika einai to space-delimited array pou 8es.

> Ερώτημα 1 : Γιατί σε άλα σκριπτ αυτο το πραμα αναγνωρίζει κάθε στοιχείο μιας
> space delimited λιστας και στο δικό μου όχι

des parapanw.

> Ερώτημα 2 : Τι κάνει η εντολή set -e (δεν υπαρχει man set)

To set den apotelei programma. Apotelei entolh tou shell. Documentation
gia tis entoles tou shell mporeis na vreis sto manual tou shell (man bash)
kai sto help text tis sygkekrimenhs entolhs (help set).

user at host:~$ help set |grep "non-zero"
        -e  Exit immediately if a command exits with a non-zero status.

> Ερώτημα 3 : Τι κάνει η run-parts /etc/usbmount/umount.d || : εκτός από το να
> τρέχει κάθε εκτελέσιμο στον κατάλογο που αναφέρεται (δηλαδή τι κάνει το || :)

Auto legetai short-circuit evaluation. To "||" einai to logiko OR.
O elegxos A || B einai epityxhs mono an ena ek twn 2 einai True.
An to A einai True tote einai alh8hs h ekfrash kai de xreiazetai na
e3etasoume to B.
An to A omws einai False 8a prepei na dokimasei to B.
Sthrizomenoi loipon sto gegonos oti to B 8a ektelestei mono an to A
apotuxei, to script 8a ektelesei oti vrisketai de3ia apo to || mono
an apotuxei to run-parts.

> Ερώτημα 4 : Γιατί αν έχω
> str="s"
> if test -n $str ;then echo "non-zero n"; fi
> if ! test -z $str ; then echo "non-zero z";fi
> παιρνω
> non-zero n
> non-zero z
> ενώ με
> str="" στην αρχη και τα αλλα ιδια παιρνω
> non-zero n

Vale double quotes gyrw apo to str kai 8a exeis to epi8umhto apotelesma.
user at host:~$ str=""
user at host:~$ if test -z "$str"; then echo la; fi
la
user at host:~$ if ! test -n "$str"; then echo la; fi
la
user at host:~$

> Ερωτημα 5 :  Υπάρχει τρόπος να βρω τα symlinks ενός καταλόγου?

Ta symlinks pou vriskontai se ena katalogo?
man find

Ta symlinks pou deixnoun se ena katalogo?
man find

> Αυτά για αρχη (:

it's all in the manual :-)
dimitris




More information about the Linux-greek-users mailing list