Date
當提供的變數為空值時,日期命令輸出空/無
date
當提供的變數沒有/空值時,命令如何輸出空/無。我知道if else
語句可以做到這一點,但我有點認為這不是正確的方法。是否有適當的命令或對date
命令進行更改來執行此操作?例如
myDay="" bDay=`date -d "$myDay"` echo "$bDay" // this should have no output
你可以這樣做:
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}")
請注意
echo
(除了csh
’secho
)總是輸出至少一個換行符(除非你使用-n
或\c
取決於echo
實現),即使沒有傳遞任何參數,所以你還需要:[ -z "$bDay" ] || echo "$bDay"
$bDay
為空時不輸出任何內容。