Mysql
 sql >> Base de données >  >> RDS >> Mysql

Bash + MySQL -d problème de backtick

Essayez de faire ceci :

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

ou

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

La citation arrière (`) est utilisée dans la substitution de commande à l'ancienne, par exemple

foo=`command`

Le

foo=$(command)

syntaxe est recommandée à la place. La gestion de la barre oblique inverse à l'intérieur de $() est moins surprenante et $() est plus facile à imbriquer . Voir http://mywiki.wooledge.org/BashFAQ/082

\140

est la représentation octale d'un backtick, voir

man ascii