Linux Bash,多个MYSQL命令

时间:2015-05-11 07:00:05

标签: mysql bash

我试图弄清楚如何在bash脚本中将多变量请求格式化为mysql。我在bash脚本中设置了5个变量。每个变量都从远程DB中恢复。我目前将每个变量放在一个单独的行上,并有自己独立的登录。

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

这不起作用。我想这是一个形成问题。或者我甚至可以分配这样的多个变量?在我看来,限制登录注销过程更安全。

1 个答案:

答案 0 :(得分:0)

您应该使用EOF代替END

示例:

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

至于你的代码,只需在每一行的末尾使用;

mysql -uroot -proot SOMEDATABASE << EOF
SELECT value FROM configuration WHERE label='chatTo';
SELECT value FROM configuration WHERE label='chatFrom';
EOF