[英]Shell scripting - spaces in variables?
這是我的bash腳本遇到的問題:
date1=(`date -d @$startdate`)
date2=(`date -d @$enddate`)
touch --date="$date1" /tmp/newerthan
touch --date="$date2" /tmp/olderthan
由於date -d
命令返回的單詞包含空格,因此touch --date="$var"
命令處理的唯一內容是第一個單詞(“Mon”,“Tue”,“Wed”)。 ..等),所以它不能正常工作。
我如何解決這個問題,並能夠讓后續行處理整個字符串?
您在以下位置使用了數組賦值:
date1=(`date -d @$startdate`)
要么使用簡單的反引號(絕對不是首選技術):
date1=`date -d @$startdate`
或者(更好)使用$(...)
:
date1=$(date -d @$startdate)
或者,在緊要關頭(必須有一個很好的理由),使用它將整個數組復制到要touch
的參數中:
touch --date="${date1[*]}" /tmp/newerthan
您可能還想考慮@$startdate
周圍的雙引號。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.