mysql Bash变量在http请求/响应正文中不起作用

r3i60tvu  于 2022-10-31  发布在  Mysql
关注(0)|答案(1)|浏览(142)

# !/bin/bash

object=$1
tenant=$2

server=$(sshpass -p 'password' ssh -tt root@ipaddress "/opt/something/sh/mysql -A 'admin_site' -e 'select id from something_servers where tenantcode=$2' | grep -o '[0-9]*'")

http -b "http://ipaddress/?app=something&t=users&v=users&server=$server&apikey=apikey&action=something.$1.list"

一切看起来都很好。变量$server的值是“24”,这是它应该的。但是,当我在http请求中调用它时,它仍然不工作......老实说,我没有任何线索。我通过回显它来测试变量的值,它是正确的。但是由于某种原因,当在请求中使用它时,它不工作。
有什么想法吗?

ssgvzors

ssgvzors1#

您的程式码会建立一个称为object的变数,并将其值设定为储存在称为1的变数中的值。
它创建了一个名为tenant的变量,并将其设置为变量2中存储的值。
然后,它创建一个名为server的变量,然后调用一个subshell并在$()之间运行该例程。
在子程序中:
您可以使用单引号将

-e 'select id from something_servers where tenantcode=$2'

但要使变量插值法起作用,则需要使用双引号
也许这就是你的问题?

相关问题