Это код
a=''
b=john
c=${a-$b}
echo $c
И выход пустой строки
И для аналогичного кода, где первая переменная не инициализируется
b1=doe
c1=${a1-$b1}
echo $c1
И вывод
doe
Я не понимаю, как bash имеет дело с расширением переменных, приводящих к разным результатам.