sql >> Database teknologi >  >> RDS >> Mysql

Bash + MySQL -d backtick problem

Prøv at gøre dette :

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"

Tilbagecitatet (`) bruges i den gamle kommandoerstatning, f.eks.

foo=`command`

Den

foo=$(command)

syntaks anbefales i stedet. Håndtering af omvendt skråstreg inde i $() er mindre overraskende, og $() er lettere at indlejre . Se http://mywiki.wooledge.org/BashFAQ/082

\140

er den oktale repræsentation af et backtick, se

man ascii


  1. Skift sprog for MySQL-fejlmeddelelser

  2. Hvad betyder importfejl:Symbol ikke fundet:_PQencryptPasswordConn, og hvordan retter jeg det?

  3. Laravel 4 migreringsbasistabel blev ikke fundet

  4. Hvad er PostgreSQL?