在UNIX Bash shell中将MYSQL命令的输出存储在变量中

时间:2014-06-26 09:21:28

标签: unix

我在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 ''

1 个答案:

答案 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)