sql >> Databasteknik >  >> RDS >> Mysql

Bash + MySQL -d backtick-problem

Försök att göra detta :

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

eller

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

Bakåtcitatet (`) används i den gammaldags kommandosubstitutionen, t.ex.

foo=`command`

Den

foo=$(command)

syntax rekommenderas istället. Omvänd snedstreckshantering inuti $() är mindre överraskande, och $() är lättare att kapsla . Se http://mywiki.wooledge.org/BashFAQ/082

\140

är den oktala representationen av en backtick, se

man ascii


  1. MySQL COT() Funktion – Returnera Cotangens för ett tal i MySQL

  2. Hur kan jag lägga till en främmande nyckel när jag skapar en ny tabell?

  3. Hur undkommer jag % i Knex where like-fråga?

  4. Bind_param Non-Object Error w/ mysqli