Você poderia fazer:
bDay=${myDay:+$(date -d "$myday")}
ou:
if [ -n "$myDay" ]; then
bDay=$(date -d "$myDay")
else
bDay=
fi
ou:
bDay=$([ -z "$myDay" ] || date -d "$myDay")
ou (com uma mensagem de erro se $myDay estiver vazio):
bDay=$(date -d "${myDay:?no date supplied}")
Observe que echo (exceto csh ' echo ) sempre exibe pelo menos um caractere de nova linha (a menos que você use -n ou \c dependendo da implementação echo ), mesmo quando não passou qualquer argumento, então você também precisa:
[ -z "$bDay" ] || echo "$bDay"
por não exibir nada quando $bDay estiver vazio.