Shell: переменное расширение внутри одинарных кавычек

Я совершенно новичок в сценариях оболочки.

У меня есть следующий скрипт:

out="FAILURE"
curl -X POST -d 'json={"json":"message"}' http://localhost:8888/json.tail.test

Я хочу заменить "сообщение" на $outценность. Я пробовал разные способы, но не смог этого сделать. Может кто-нибудь предложить мне?

2 ответа

Решение

Сделай это:

out="FAILURE"
curl -X POST -d 'json={"json":"'$out'"}' http://localhost:8888/json.tail.test

В основном, все, кроме $out внутри одинарных кавычек. Одинарные кавычки защищают двойные кавычки, но подавляют расширение таких переменных, как $out,

Попробуй это:

out="FAILURE" curl -X POST -d 'json={"json": $OUT}' http://localhost:8888/json.tail.test

Вам просто нужно буквально заменить "message" с $OUT

Другие вопросы по тегам