Com um comando como esse, você pode querer evitar que as variáveis estejam vazias, independentemente de como isso possa acontecer:
$ cat foo.sh
#!/bin/bash
ReportDir=/somepath
FileNam=$(echo ...) # oops, a typo
# ...
rm -rf -- "${ReportDir:?}/${FileName:?}"
$ bash -x foo.sh
+ ReportDir=/somepath
++ echo ...
+ FileNam=...
foo.sh: line 5: FileName: parameter null or not set
A expansão ${parameter:?message}
é encerrada com um erro se parameter
estiver vazio ou não configurado. A mensagem padrão geralmente é boa, então eu não dei uma no código acima.
Como alternativa, basta verificar manualmente, mas isso é detalhado e ainda propenso a erros de digitação:
if [ -z "$FileName" ] ; then
echo "FileName is empty!" >&2
exit 1
fi
rm -rf -- "$ReportDir/$FileName"