mysql - 为什么从 mysql 获取输出时这个 bash 变量为空?

标签 mysql bash

我试图在 bash 中获取 MySQL 查询的输出,并将其用于 bash 变量,但在脚本中使用时它一直显示为空白,但在终端上运行得很好。这里出了什么问题?

我尝试更改语句的编写方式并更改变量的名称,以防它以某种方式保留。我也进行了大量的搜索,但事实证明,如果您在搜索中使用“bash”、“空白”和“变量”,通常会出现一些我已经知道的如何测试空白变量的版本怎么办。

tempo=$(mysql -u "$dbuser" -p"$dbpass" -D "$database" -t -s -r -N -B -e "select user from example where user='$temp' > 0;")
printf "the output should be: $tempo" # This is a test statement

最终结果应该是 $tempo 变量应该包含数据库中的用户名,或者如果没有则为空。

最佳答案

我认为 user = '$temp' > 0 处的 sql 语句存在一些错误。

但是要从 MySql 获取结果,您必须将标准错误 (stderr) 重定向到标准输出 (stdout),您应该使用 2>&1。

您很可能会遇到 MySql 错误,但请尝试在终端上运行它。

tempo=$((mysql -u "$dbuser"-p"$dbpass"-D "$database"-t -s -r -N -B -e "从示例中选择用户,其中 user='$temp ' > 0;") 2>&1)

关于mysql - 为什么从 mysql 获取输出时这个 bash 变量为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56109835/

相关文章:

bash - Sudo NOPASSWD 未注册/工作/显示

Bash - 将 stdout 重定向到日志和屏幕,仅使用 stderr 进行日志记录

linux - 子 shell 命令失败时如何终止 shell?

linux - 是否有任何快捷方式可以引用 MV 命令中第一个参数的路径?

MySQL - 外键约束错误

php - 一个循环访问两个不同的表

mysql - 在Linux XAMPP中使用windows的XAMPP-phpmyadmin数据库

mysql 与 ON DUPLICATE KEY UPDATE 和 key 有关的问题

bash - shell脚本: Is there a way to use variable as output instead of a file for executable?

MySql - 从表 2 中获取字段,如果没有,则从表 1 中获取字段