我在UNIX Bash shell
中将MYSQL命令的输出存储在变量中时遇到了问题 db_out= $(mysql -u$MASTER_DB_USER -p$MASTER_DB_PASSWD -P$MASTER_DB_PORT -h$MASTER_DB_HOST -D$MASTER_DB_NAME<<Enf
show databases;
Enf)
echo $db_out
我在变量$ db_out中没有输出。
上面的查询可以提出一些遗漏吗?
低于输出:
db_out= mysql -u$MASTER_DB_USER -p$MASTER_DB_PASSWD -P$MASTER_DB_PORT -h$MASTER_DB_HOST -D$MASTER_DB_NAME --execute "show databases"
+ db_out=
+ mysql -uroot -paxway -P3306 -h10.151.14.248 -Dsentinel --execute 'show databases'
+--------------------+
| Database |
+--------------------+
+--------------------+
| information_schema |
| composer |
| mysql |
| sentinel |
| test |
+--------------------+
echo "$db_out"
+ echo ''
答案 0 :(得分:0)
似乎输出被写入STDERR。
尝试:
db_out= $(mysql -u$MASTER_DB_USER -p$MASTER_DB_PASSWD -P$MASTER_DB_PORT -h$MASTER_DB_HOST -D$MASTER_DB_NAME 2>&1 <<Enf
show databases;
Enf)
或:
db_out= $( echo "show databases;" | mysql -u$MASTER_DB_USER -p$MASTER_DB_PASSWD -P$MASTER_DB_PORT -h$MASTER_DB_HOST -D$MASTER_DB_NAME 2>&1)