我尝试在bash脚本中执行以下内容:
REPLICATION_USER_SETUP=$(expect -c "spawn ssh $LDAP_USER@$MASTER_IP_ADDRESS \"mysql --user=$MYSQL_USER --socket=$MYSQL_SOCKET --execute \"GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO \'$MYSQL_REPLICATION_USER\'@\'$SLAVE_IP_ADDRESS\' IDENTIFIED BY \'$MYSQL_REPLICATION_PW\';\"\";expect Password:;send $LDAP_PASS\r;interact")但是每当我尝试运行它的时候,我总是得到“闭合引号后的额外字符”。我尝试了双转义引号和单转义引号的变体,但似乎都不起作用。有人能告诉我我哪里做错了吗?
发布于 2012-07-10 00:37:02
尝试转义sql查询的反斜杠:
REPLICATION_USER_SETUP=$(expect -c "spawn ssh $LDAP_USER@$MASTER_IP_ADDRESS \"mysql --user=$MYSQL_USER --socket=$MYSQL_SOCKET --execute \\\"GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO \'$MYSQL_REPLICATION_USER\'@\'$SLAVE_IP_ADDRESS\' IDENTIFIED BY \'$MYSQL_REPLICATION_PW\';\\\"\";expect Password:;send $LDAP_PASS\r;interact")https://stackoverflow.com/questions/11395498
复制相似问题