Se este é o script exato, você está perdendo o done
. A linha for
também possui um ponto-e-vírgula desnecessário no final.
Dica: -x
e --debug
opções para bash são úteis em casos como este.
Exemplo:
var=${PATH //:/''}
for d in *; do
if [ -d "$var" ]; then
echo "$var directory exists"
else
echo "Directory does not exist"
fi
done
Isso deve estar sintaticamente correto, embora o que você queira seja deixado como um exercício para o leitor.