erwtisi gia scripts

Vasilis Vasaitis vvas at hal.csd.auth.gr
Fri Dec 31 02:12:20 EET 1999


On Thu, Dec 30, 1999 at 01:08:08AM +0200, VassiLis wrote:
> paides xairetw kai erxomai kateu8eian sto psito.
> molis simera 3ekinisa na asxoloume me basika
> pragmatakia gyrw apo shell programming.
> afou katafera me to awk kai to /etc/passwd,na parw
> mia lista twn xristwn pou me endiaferoun kai twn homepaths
> tin eswsa se 3exwristo arxeio...as poume loipon oti exoume
> to e3is arxeio me onoma usrs-pths....
> user1 /home/user1
> user2 /home/user2
> gia logous parakolou8isis,8elw na ellegxw ti xwro katalambanei
> o ka8enas tous,px me ti xrisi tis du -ks pernondas etsi ena neo
> arxeio tou typou...
> 550 user1
> 430 user2
> xm...8elw alla ela pou den mporw! exw diavasei se 2 diaforetika
> vivlia ta adistoixa kefalaia tou awk alla akri de vriskw...dokimasa
> kai to action system(cmd-line) ws e3is...
> awk '{system("du -ks $2")}' usrs-pths
> to opoio ekteleitai men 2 fores (oses kai oi grames tou usrs-pths)
> alla vgazei to idio apotelesma...to du tou current directory.
> mporei kaneis na me voi8isei i toulaxiston na proteinei mia alli lysi?

  Τς τς τς... Η awk, αντίθετα με το shell ή την perl, δεν κάνει variable
substitution μέσα στα αλφαριθμητικά· άλλωστε εδώ το δολάριο έχει τελείως
διαφορετική λειτουργία. Έτσι με αυτό που έγραψες, για κάθε γραμμή εκτελείται
το εξής (όπως το βλέπεις):

    sh -c 'du -ks $2'

  Έτσι το $2 περνάει αυτούσιο στο shell, το οποίο κάνει το ίδιο την
αντικατάσταση, αλλά επειδή δεν πρόκειται για shell script δεν υπάρχουν
positional parameters, και επομένως αντιστοιχεί στο κενό αλφαριθμητικό.
Τελικά η εντολή που εκτελείται είναι:

    du -ks 

  Εσύ βέβαια ήθελες να κάνεις το εξής (απλά δεν το είχες συνειδητοποιήσει):

    awk '{ system("du -ks " $2) }' usrs-pths

  Καλή συνέχεια...

-- 
\  /_. _o|o _ \  /_. _ _.o_|_o _ 
 \/(_|_>|||_>  \/(_|_>(_|| |_|_> 
           __                                   
     _. _ /  \|_  _.|  _ _ _|  _.  _|_|_   _ ._ 
\/\/(_|_>| (|/| |(_||o(__>(_|o(_||_||_| |o(_||  
          \__                              _|   


--
====================================================================
Gia boithia (h na diagrafhte) e-mail sto majordomo at hellug.gr
Ta archives tis listas einai sto http://lists.hellug.gr/lgu.html
prin steilete kapoia erothsh psakte mipos exei hdh apanththei.
Gia opoiodipote problima stilte e-mail ston owner-linux-greek-users at hellug.gr
====================================================================



More information about the Linux-greek-users mailing list