Сначала нужно выполнить команду curl в подоболочке.Затем вам нужно использовать другой разделитель из-за '/' в Uris.'|'должно работать
dns_address=$(curl -s http://169.254.169.254/latest/meta-data/public-hostname)
sed "s|hostname|${dns_address}|g" server.js
Обратите внимание на двойные кавычки.Они необходимы для расширения переменной.
или если она должна быть в одной строке
sed "s|hostname|$(curl -s http://169.254.169.254/latest/meta-data/public-hostname)|g" server.js
, или, может быть, я неправильно понял вопрос, и вы хотите поместить фактическую команду вserver.js
sed 's|hostname|curl -s http://169.254.169.254/latest/meta-data/public-hostname|g' server.js
Похожие: Как использовать переменные в команде в sed?