这是我预先设置的 late_command:
di preseed/late_command 字符串 \ 目标 IP=$(ifconfig eno1 | grep "inet\b" | awk '{print $2}'); \ 目标内 curl -X post --data-urlencode 'playload={"text": "IP 地址是 '$IP'"}' https://hooks.slack.com/incoming-webhook-url
在 slack 频道中,它仅打印“IP 地址是”,不会打印 $IP 的值。如何将变量值传递给 slack?任何建议都将不胜感激。
答案1
你有$IP
之间的变量单引号('
)。
这可以防止 shell 扩展。例如:
# Without quotes
echo $IP
> addr:192.168.1.1
尽管
# With quotes
echo '$IP'
> $IP
传递payload
不带引号的字符串:
d-i preseed/late_command string \
in-target IP=$(ifconfig eno1 | grep "inet\b" | awk '{print $2}'); \
in-target curl -X post --data-urlencode playload={"text": "IP address is $IP"}