2016-03-07 18 views
5

Quanto segue proviene da /etc/init.d/functions su RHEL. Sto cercando di capire cosa fa la funzione __pids_var_run() quando mi sono imbattuto in questo ciclo while.Che cosa significa la parentesi angolare sinistra dopo un ciclo while in bash?

  while : ; do 
        read line 
        [ -z "$line" ] && break 
        for p in $line ; do 
          if [ -z "${p//[0-9]/}" -a -d "/proc/$p" ] ; then 
            if [ -n "$binary" ] ; then 
              local b=$(readlink /proc/$p/exe | sed -e 's/\s*(deleted)$//') 
              [ "$b" != "$binary" ] && continue 
            fi 
            pid="$pid $p" 
          fi 
        done 
      done < "$pid_file" 

Qualcuno potrebbe spiegare che cosa while : ; do ; ... done < "$pid_file" fa? Più in particolare, l'ultima parte dopo done, come il resto ha più o meno senso.

+0

Significa la stessa cosa che fa dopo ogni comando. –

risposta

4

Significa che qualsiasi comando nel ciclo che legge qualcosa da stdin leggerà dal file specificato (invece della tastiera, ad esempio).

In questo caso in particolare, il ciclo utilizza read line per leggere una singola riga da stdin, quindi quando si effettua il reindirizzamento da $pidfile legge effettivamente il file riga per riga.

Per leggere ulteriormente circa redirezioni, ecco un Illustrated redirection tutorial che è consigliato da this Bash Guide da Lhunath e GreyCat.

+3

In significa prendere lo stdin dal file. Non ha niente a che fare con una tastiera. Spesso, lo stdin è associato a una tastiera, ma è un errore confondere i due. –

+0

Certo, non sapevo a che livello spiegarlo. – alfC

+0

Tecnicamente, specifica lo standard input per il comando stesso 'while', dal quale qualsiasi comando nel corpo eredita il proprio input standard. – chepner

3

vedo che questo quesiton è già risposto (non posso commentare perché ho fatto una taglia), ma penso che si dovrebbe verificare questo sito quando si ha la possibilità:

http://mywiki.wooledge.org/BashFAQ/001

Questo ragazzo (o gal) si immerge realmente nella sintassi corretta e impropria con esempi.

Problemi correlati