簡體   English   中英

Bash 變量在 http 請求/響應正文中不起作用

[英]Bash variable not working in http request/response body

#!/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 請求中調用它時,它根本不起作用……老實說,我不知道。 我通過回顯它來測試變量的值,它是正確的。 但是由於某種原因,在請求中使用它時它沒有。

有任何想法嗎?

您的代碼創建了一個名為 object 的變量,並將其值設置為存儲在名為 1 的變量中的值。

它創建一個名為tenant的變量並將其設置為存儲在名為2的變量中的值。

然后它創建一個名為 server 的變量,然后調用一個子 shell 並在 $() 之間運行例程。

在子程序中:

你使用單引號

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

但是要使變量插值起作用,您需要使用雙引號

也許這是你的問題?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM