I've been asked to help with some Drupal development. To make it tolerable, I
drive everything in code so that I can apply some lifecycle management
principles. Being Drupal, this regularly requires editing the database directly.
I have a bash script which drives Drush to make changes. The important part of
the script looks like this:
function run_drush_cmd {
$DRUSH_BIN --root=${DRUPAL_ROOT} --uri=${SITE_URI} $@
}
run_drush_cmd "sql-query \"delete from ldap_servers where sid='ldap1';\""
This produces an error about messed up quoting in my SQL syntax:
"ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the
manual that corresponds to your MySQL server version for the right syntax to
use near '"delete' at line 1"
It works if instead of calling the function I put together the entire Drush
command on a single line of my script:
$DRUSH_BIN --root=${DRUPAL_ROOT} --uri=${SITE_URI} sql-query "delete from
ldap_servers where sid='ldap1';"
I have tried a lot of different styles of quoting, but I can't figure out how
to tell the function to pass the string to the external binary correctly. I am
obviously not understanding something.
Any thoughts on what bash is doing?
Richard
/*
PLUG: http://plug.org, #utah on irc.freenode.net
Unsubscribe: http://plug.org/mailman/options/plug
Don't fear the penguin.
*/