Date

當提供的變數為空值時,日期命令輸出空/無

  • October 31, 2018

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’s echo)總是輸出至少一個換行符(除非你使用-n\c取決於echo實現),即使沒有傳遞任何參數,所以你還需要:

[ -z "$bDay" ] || echo "$bDay"

$bDay為空時不輸出任何內容。

引用自:https://unix.stackexchange.com/questions/478878