← Back to team overview

sslug-teknik team mailing list archive

Re: For l�i et shell script

 

Lasse Wieslander wrote:

> 
> for fil in *.tar.gz
> do
>  bla bla bla bla
> done
> 
> for at gøre noget for hver tar.gz fil MEN hvis der ikke er nogle filer
> gennemkøres lykken en gang med *.tar.gz i $fil

Der er flere måder , en :

  for fil in xxxbla *.tar.gz
  do
    if [ "$fil" != "xxxbla" -a -r "fil" ] ; then
	bla bla bla
    fi
  done

"xxxbla" er en dummy så der er mindst et udtryk.
efterfølgende if sætning sorterer denne fra, og checker at "fil"
er læsbar. egentlig kunne man nøjes med at teste for om $fil er læsbar...

> 
> Nogle der har ide til om man kan undgå det?
> Og eller gerne en måde man kan se om en fil eksisterer, altså if en fil
> eksisterer then...
> 
> Og er der nogen der ved hvor der ligger dokumentation til shell-scripts??

"man tcsh" "man bash" "man zsch" .......

Derudover anvender bla. bash, sh, ... "test" kommandoen:

  if test x$1 = x
  then
    ... 
  else
    ...
  fi

eller
  if [ x$1 = x ] 
  then 
     .....

Du vil opdage at /usr/bin/[ og /usr/bin/test er samme fil (hardlinked) :
 156606 -rwxr-xr-x   2 root     root        16956 nov  4  1997 /usr/bin/[
 156606 -rwxr-xr-x   2 root     root        16956 nov  4  1997 /usr/bin/test



-- 
mvh Frank Damgaard  frda@xxxxxxxxxxxxx | frank@xxxxxxxx |fido  2:236/15.2


Follow ups

References