date
指定された変数にno / null値がある場合、コマンドはどのように空白または内容のない内容を出力できますか?私はif else
ステートメントがこれを行うことができることを知っていますが、それが正しい方法だとは思いません。これを行うのに適したコマンドやコマンドの変更はありますかdate
?
例えば
myDay=""
bDay=`date -d "$myDay"`
echo "$bDay" // this should have no output
答え1
次のことができます。
bDay=${myDay:+$(date -d "$myday")}
または:
if [ -n "$myDay" ]; then
bDay=$(date -d "$myDay")
else
bDay=
fi
または:
bDay=$([ -z "$myDay" ] || date -d "$myDay")
または(空の場合はエラーメッセージを表示$myDay
):
bDay=$(date -d "${myDay:?no date supplied}")
(sをecho
除く)引数が渡されていない場合でも(実装を使用するか実装に依存しない限り)、常に1つ以上の改行を出力するので、次のことも必要です。csh
echo
-n
\c
echo
[ -z "$bDay" ] || echo "$bDay"
$bDay
空の場合は何も出力されません。