저는 리눅스를 처음 접했습니다. 왜 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'