以下是我遇到问题的一些代码
id=`my_api myrouter myroutername getsomething'{"uid":"$servername","meta_type":"system"}'| $SCRIPTS_DIR/jq -M '.result.data[].uid'`
for i in `echo $id`;
do
echo $i
echo ""
done
我无法在反引号中传递变量$ servername。对服务器名称进行硬编码绝对没有问题
我正在使用bash脚本。尝试逃避但它不起作用。我知道我错过了一些非常微不足道的东西,但它并没有传达给我。
答案 0 :(得分:0)
反引号不是问题 - 因为变量出现在单引号内。这样做:
id=$(my_api myrouter myroutername getsomething'{"uid":"'"$servername"'","meta_type":"system"}'| $SCRIPTS_DIR/jq -M '.result.data[].uid')
# ............................................a........b^^^^^^^^^^^^^c.......................d
因此,单引号字符串从“a”开始,以“b”结尾,变量在双引号内被替换以扩展字符串,然后单引号字符串的其余部分从“c”变为“d” “