繁体   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