IF statement help

Nils Kassube kassube at gmx.net
Wed Nov 11 17:52:59 UTC 2009


Oliver Marshall wrote:
> I have the following which checks for the existence of a folder ($1)
>  in two locations ($folder1_source and $folder2_source). First it
>  checks in the $folder1_source location then in the $ folder2_source
>  location. If it finds it in neither then the $folder_source variable
>  remains empty and the script quits.
> 
> ****************
> folder_source=""
> if [ -d /$folder1_source/$1 ]; then
>                 folder_source=1
> elif [ -d /$folder2_source/$1 ]; then
>                 folder_source=2
> elif [ $folder_source="" ]; then

What do you want to achieve with this statement? Did you perhaps mean

elif [ $folder_source = "" ]; then

instead?

>     exit
> fi
> *****************

> I want to add one more check which is that if the directory specified
>  by the $1 variable is found in BOTH the /$folder1_source AND
>  /$folder2_source locations then I want the script to fail.

I would change the entire block like this:

test -d "/$folder1_source/$1" -a -d "/$folder2_source/$1" && exit 1
test ! -d "/$folder1_source/$1" -a ! -d "/$folder2_source/$1" && exit 2
test -d "/$folder1_source/$1" && folder_source=1
test -d "/$folder2_source/$1" &&  folder_source=2

> Whats the best way of writing that last elif statement?

There is no _best_ way. :)


Nils




More information about the ubuntu-users mailing list