Можно, но на самом деле это не обычный способ проверить, есть ли пустые аргументы.
for((i=1; i<=$#; ++i)); do
[[ "${!i}" ]] || echo "$0: Argument $i is empty" >&2
done
Если вас не волнует индекс, просто зацикливание на реальных аргументах еще проще.
for arg in "$@"; do
[[ "$arg" ]] || echo "$0: Empty argument" >&2
done
Обратите внимание, как мы печатаем диагностику со стандартной ошибкой, и позаботимся о том, чтобы имя скрипта, генерирующего диагностику, было включено в сообщение.
Вам очень редко нужно проверять наличие пустыхаргументы на практике, но, возможно, это учебное упражнение.