Объединение сценария Bash и ресурсов сценария в один исполняемый файл

Вы можете вставлять переменные только в строки с двойными кавычками.

Простой и безопасный способ сделать это - выйти из строки с одинарными кавычками следующим образом:

xml=''"$str1"''"$str2"''

Обратите внимание, что после выхода из строки с одинарными кавычками я заключил переменные в двойные кавычки. Это сделано для того, чтобы обеспечить безопасность специальных символов внутри переменных.

Поскольку вы просили другой способ, вот неполноценная альтернатива с использованием printf:

xml=$(printf '%s%s' "$str1" "$str2")

Она неполноценна, поскольку для достижения того же эффекта используется вложенная оболочка, что является ненужным дополнительным процессом.

Как написал в комментарии @steeldriver, в современных версиях bash можно написать так, чтобы избежать вложенной оболочки:

printf -v xml ' ... ' "$str1" "$str2"

Поскольку printf является встроенным модулем оболочки, эта альтернатива, вероятно, частично совпадает с моим первым предложением вверху.

2
02.06.2016, 00:35
0 ответов

Теги

Похожие вопросы