Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Bash + MySQL -d Backtick-Problem

Versuchen Sie Folgendes:

dbEntry="$(printf "SELECT \140%s\140 FROM 'RiverDataDays' WHERE date = '%s';\n" "$timeSample" "$(<tmpValue )" | mysql -N -D "$targetDatabase")"
echo "$dbEntry"

oder

dbEntry="$(printf "SELECT \`%s\` FROM 'RiverDataDays' WHERE date = '%s';\n" "$timeSample" "$(<tmpValue )" | mysql -N -D "$targetDatabase")"
echo "$dbEntry"

Das Backquote (`) wird in der Befehlsersetzung im alten Stil verwendet, z. B.

foo=`command`

Die

foo=$(command)

Syntax wird stattdessen empfohlen. Die Handhabung von Backslashes innerhalb von $() ist weniger überraschend und $() ist einfacher zu verschachteln . Siehe http://mywiki.wooledge.org/BashFAQ/082

\140

ist die Oktaldarstellung eines Backticks, siehe

man ascii