쉘 변수를 사용하여 SQL 문을 인쇄하려고 하는데 예상한 결과가 나오지 않습니다.
pdate=`date +%d-%b-%Y`
query='"select \* from table_name where partition_date='"$pdate"' and \$CONDITIONS"'
echo $query
예상 출력:
"select * from table_name where partition_date="30-Nov-2018" and \$CONDITIONS"
실제 출력:
"select \* from table_name where partition_date=30-Nov-2018 and \$CONDITIONS"
답변1
원하는 출력을 얻으려면 다음을 수행하십시오.
pdate=$(date +%d-%b-%Y)
query='"select * from table_name where partition_date="'"$pdate"'" and \$CONDITIONS"'
# ............^^ no backslash ........................^..........^ quotes as plain chars
echo "$query"
Bash의 대안은 다음과 같습니다 printf
. 인용을 단순화할 수 있습니다.
printf -v query '"select * from table_name where partition_date="%s" and \$CONDITIONS"' "$pdate"