在Linux中将日期命令扩展至单引号内

在Linux中将日期命令扩展至单引号内

我是linux新手。我想知道为什么 date 命令不在单引号内扩展。

所以如果我发出如下命令

d=$(date +%m%d) 
echo 'A1D$d'

输出是A1D$d

但如果我不加引号它的工作...

 d=$(date +%m%d) 
    echo A1D$d

输出是A1D0603

任何人都可以帮助我吗

我需要日期命令在单引号中展开因为……在aws API命令我需要使用单引号内的日期命令像下面这样

aws s3api list-objects --bucket ui-dl-weather-ecmwf-ltf --prefix daily/ --query "Contents[?contains(Key, 'A1D$(date +%m%d)')]" --output text | awk '{print $2, $4}' >> "$FILESIZE

答案1

这与命令替换无关。该变量$d在两种情况下具有相同的值。

但单引号可以echo 'A1D$d'防止$d被视为变量。你对此无能为力。

但是,如果您有一个很长的单引号字符串并且需要在其之间扩展变量,那么您可以中断引号:

echo 'thismustbequoted'"but here appears a ${variable}, yeah"'andmore singlequotedtext'

相关内容