bash script: file | grep

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Neděle Květen 6 16:45:34 CEST 2001


On Fri, 4 May 2001, Jan Kurik wrote:

>   zkuste zmenit radek :
> if [ $(file $i | grep -q data) ]
>  na:
> if $(file $i | grep -q data)

Nebo jeste lepe na

  if file $i | grep -q data

protoze parametrem prikazu if je -- kupodivu -- zase prikaz, podle jehoz
navratove hodnoty se rozhoduje. S $(...) to sice take funguje, ale je to
spis nahoda: vysledkem $(... | grep -q ...) je vzdy prazdny text, a
tudiz tam zustane navratova hodnota z grepu. Zkuste si:

  if $(echo echo; exit 0); then echo OK; fi
  if $(echo echo; exit 1); then echo OK; fi
  if (echo echo; exit 0); then echo OK; fi
  if (echo echo; exit 1); then echo OK; fi

V prvnich dvou pripadech vyleze z $() text "echo", ktery bude shellem
uspesne interpretovan, a tudiz bude hodnota za exit naprosto a uplne
ignorovana. V druhem pripade se "echo" vypise na vystup a if se bude ridit
hodnotou u exit.

--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."



Další informace o konferenci Linux