Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Bash + MySQL -d problema de backtick


Tente fazer isso:
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"

O backquote (`) é usado na substituição de comando de estilo antigo, por exemplo
foo=`command`

o
foo=$(command)

sintaxe é recomendada em vez disso. O manuseio de barras invertidas dentro de $() é menos surpreendente, e $() é mais fácil de aninhar . Consulte http://mywiki.wooledge.org/BashFAQ/082
\140

é a representação octal de um backtick, veja
man ascii