2014-02-08 145 views
0

這是我與我的bash腳本的問題:Shell腳本 - 變量中的空格?

date1=(`date -d @$startdate`) 
    date2=(`date -d @$enddate`) 

    touch --date="$date1" /tmp/newerthan 
    touch --date="$date2" /tmp/olderthan 

因爲由date -d命令返回的話包含空格,即得到由touch --date="$var"命令處理的唯一事情是第一個字(這是「星期一」 ,「星期二」,「星期三」等),因此無法正常工作。

我該如何解決此問題並能夠獲得後續行來處理整個字符串?

回答

2

您已經使用數組賦值在:

date1=(`date -d @$startdate`) 

無論是使用純反引號(絕對不是首選的技術,雖然):

date1=`date -d @$startdate` 

或(更好的)使用$(...)

date1=$(date -d @$startdate) 

或者,在一個捏(必須有一個很好的理由),使用它來共同PY整個數組到參數touch

touch --date="${date1[*]}" /tmp/newerthan 

你可能要考慮雙引號@$startdate了。