簡體   English   中英

Shell腳本 - 變量中的空格?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM