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.