Você pode usar nullglob para bash return string vazia quando a expansão do nome do arquivo falhar:
$ shopt -s nullglob
$ a=(/tmp/nofileexists*.pdf) && echo ${#a[@]} && echo ${a[@]}
0
<blank line>
Ou usando failglob para relatar erro:
$ shopt -s failglob
$ a=(/tmp/nofileexists*.pdf) && echo ${#a[@]} && echo ${a[@]}
bash: no match: /tmp/nofileexists*.pdf