全部, 我在EC2实例上运行shell脚本。我正在尝试使用实例的IP定义服务。
MY_IP=$(curl http://169.254.169.254/latest/meta-data/local-ipv4)
echo '{"service": {"name": "demo", "tags": ["demo"], "port":80, "check":{"script":"curl $MY_IP:80 >/dev/null 2>&1","interval":"10s"}}}' | sudo tee /etc/demo.json
当我在实例上浏览我的demo.json文件时,MY_IP变量没有被替换。
你能帮忙吗?答案 0 :(得分:0)
使用单引号引用echo
的参数。这些将阻止评估像$MY_IP
这样的shell变量,因此它会逐字逐句地显示在那里(如$MY_IP
)。
您必须关闭单引号,插入"$MY_IP"
,然后再次打开单引号:
echo '{"service": {"name": "demo", "tags": ["demo"], "port":80, "check":{"script":"curl '"$MY_IP"':80 >/dev/null 2>&1","interval":"10s"}}}' | sudo tee /etc/demo.json