LinuxBash,多个MYSQL命令

LinuxBash,多个MYSQL命令,mysql,bash,Mysql,Bash,我试图弄清楚如何在bash脚本中格式化对mysql的多变量请求。我有5个变量要在bash脚本中设置。从远程数据库检索每个变量。我目前将每个变量放在一个单独的行上,并有自己的单独登录名 chatTo=$(mysql -D DB -u user -p'password' -h "$Control" -P 3309 -se "SELECT value FROM configuration WHERE label='chatTo'") chatFrom=$(mysql -D DB -u user -p

我试图弄清楚如何在bash脚本中格式化对mysql的多变量请求。我有5个变量要在bash脚本中设置。从远程数据库检索每个变量。我目前将每个变量放在一个单独的行上,并有自己的单独登录名

chatTo=$(mysql -D DB -u user -p'password' -h "$Control" -P 3309 -se "SELECT value FROM configuration WHERE label='chatTo'")

chatFrom=$(mysql -D DB -u user -p'password' -h "$Control" -P 3309 -se "SELECT value FROM configuration WHERE label='chatFrom'")
我确信有一种更有效的方法可以做到这一点。我正在努力:

mysql -D DB -u user -p'password' -h "$Control" -P 3309 -se << END
    chatFrom=$(SELECT value FROM configuration WHERE label='chatFrom');
    chatTo=$(SELECT value FROM configuration WHERE label='chatTo');
    END

mysql-ddb-u user-p'password'-h“$Control”-p3309-se您应该使用
EOF
而不是
END

例如:

mysql -uroot -proot SOMEDATABASE << EOF
insert into TABLENAME (name,lastname,address,telephone) values $_name , '$_lastname', '$_address' , '$_tel';
EOF

那不可能是对的。必须分配变量,以便以后在脚本中使用。@Cybergei在这种情况下,您应该逐个运行它。
END
不会引起您的问题(我确定)。虽然您缩进的结束语
可能没有帮助。但是您的第二块代码中嵌入了shell命令替换语法(即
$(cmd…
)。这是行不通的。您需要找到正确的mysql语法,以便在SQL查询空间中创建局部变量,然后找到如何将查询中的值分配给这些变量。祝你好运。要将单个程序的输出分成多个变量,你需要一些特性来决定一部分的结束和另一部分的开始。如果您展示了示例输出,您可以提供一个答案。
mysql -uroot -proot SOMEDATABASE << EOF
SELECT value FROM configuration WHERE label='chatTo';
SELECT value FROM configuration WHERE label='chatFrom';
EOF