Невозможно передать значение переменной команде curl в файле preseed

Вот мой preseed late_command:

di 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-адрес" $IP ""}' https://hooks.slack.com/incoming-webhook-url

В слабом канале он печатает только "IP address is", значение $IP не печатается. Как передать значение переменной, чтобы расслабиться? Любые предложения будут оценены.

1 ответ

У тебя есть $IP переменная между одинарными кавычками (').

Это предотвращает расширение оболочки. Например:

echo '$IP'
addr:192.168.1.1

в то время как

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"}
Другие вопросы по тегам