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