我正在尝试从bash中的MySQL查询中获取输出,并在bash变量中使用它,但是在脚本中使用时,它保持空白,但是可以在终端上完美地工作。怎么了?
我试图改变语句的编写方式,并更改变量的名称,以防万一它被保留。我也做了很多搜索,但事实证明,如果在搜索中只使用“ bash”,“ blank”和“ variable”,它通常会提供一些有关如何测试我已经知道的空白变量的版本怎么做。
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
变量应该包含数据库中的用户名,如果没有,则为空。
答案 0 :(得分:0)
我认为您在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)
答案 1 :(得分:0)
解决方案是像这样回显sql查询的结果:
ctest
现在我剩下逻辑问题了,但我认为我可以解决。