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'

관련 정보