Três coisas:
(1) Uma construção if-then-else-fi deve se parecer mais com isso:
if [ "$myvar" = "value" ]; then
# do stuff
elif [ "$myvar" = "othervalue" ]; then
# do other stuff
else
# do still other stuff
fi
(2) Você poderia usar apenas um interruptor de caso:
case "$myvar" in
"value")
# do stuff
;;
"othervalue")
# do other stuff
;;
*)
# do still other stuff
;;
esac
(3) Eu não sei o que você está tentando fazer com os comandos $1=filename
, mas definitivamente não é o jeito certo de fazer isso, seja o que for. ;)
Confira o tutorial de preparação para para mais.