【发布时间】:2018-06-30 14:36:27
【问题描述】:
我想连接到mysql数据库并执行一些查询并将其结果导出到变量中,而所有这些都需要完全由bash脚本完成
我有一个 sn-p 代码,但不起作用。
#!/bin/bash
BASEDIR=$(dirname $0)
cd $BASEDIR
mysqlUser=n_userdb
mysqlPass=d2FVR0NA3
mysqlDb=n_datadb
result=$(mysql -u $mysqlUser -p$mysqlPass -D $mysqlDb -e "select * from confs limit 1")
echo "${result}" >> a.txt
什么问题?
【问题讨论】:
-
有什么理由不直接将
mysql的输出重定向到文件中吗?此外,什么不起作用以及以何种方式不起作用(错误消息?)。您还需要双引号 all 变量扩展。 -
@Corrupted_S.K 无关。给定代码中的
-p选项没有问题(除非他们应该使用my.cnf文件代替)。 -
您是否收到错误消息或警告?
-
不,这意味着错误不会保存到输出文件,因为您只是重定向标准输出,而不是标准错误。使用
mysql ... 2>a-err.txt重定向错误流。然后这些错误将在a-err.txt中可用。