sql >> Database >  >> RDS >> Mysql

Bash + MySQL -d backtick probleem

Probeer dit eens:

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

of

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

Het aanhalingsteken (`) wordt gebruikt bij de vervanging van commando's in de oude stijl, bijv.

foo=`command`

De

foo=$(command)

syntaxis wordt in plaats daarvan aanbevolen. Backslash-verwerking binnen $() is minder verrassend, en $() is gemakkelijker te nesten . Zie http://mywiki.wooledge.org/BashFAQ/082

\140

is de octale representatie van een backtick, zie

man ascii


  1. Hoe maak je een tijdelijke functie in PostgreSQL?

  2. MySQL:sql_mode permanent instellen

  3. Hoe vind je de top drie van het hoogste salaris in de emp-tabel in Oracle?

  4. Hoe kan ik een tabel maken in MySQL genaamd order?