Вы можете использовать eval
, переопределив func () следующим образом:
func() {
eval $example=\"${input} World\"
}
Это позволяет двойным кавычкам "выживать" при первом разборе (который расширяет переменные до их значений, какнеобходимо выполнить), чтобы eval снова начал анализ со строкой 'input = "Hello World".
Что касается использования export
для выполнения работы, если переменная input на самом деле не нуждается вбыть экспортированным, включите его опцию '-n':
export -n $example=...
, и переменная останется переменной оболочки и не будет экспортирована как переменная окружения.