#bash #syntax
#bash #синтаксис
Вопрос:
У меня есть простой скрипт bash:
# This function cannot be changed
function set_tf_var() {
variable_name="TF_VAR_$1"
variable_value="$2"
echo "Setting $variable_name to $variable_value"
export $variable_name=$variable_value
}
job_schedule_expression="rate(10 minutes)"
set_tf_var "job_schedule_expression" "$job_schedule_expression"
Но когда я его запускаю, я получаю следующую ошибку:
line 5: export: `minutes)': not a valid identifier
Следующее job_schedule_expression работает просто отлично:
- скорость (10 минут)
- скорость 10 минут
Я не знаю, как я могу избежать круглой скобки или чего-то еще, чтобы это сработало. Буду признателен за любую помощь.
Ответ №1:
Попробуйте использовать строку ниже
заключение переменной в двойные кавычки может решить вашу проблему.
export $variable_name="$variable_value"
Вам нужно избежать двойных кавычек, если ваша переменная содержит двойные кавычки, используя
Комментарии:
1. Есть ли способ сделать это без обновления
set_tf_var()
функции?2. Управляющим символом является обратная косая черта, а не прямая. Но строка может содержать двойные кавычки просто отлично.
3. @Aziz Возможны некоторые обходные пути, но это быстро выходит из-под контроля. Определение функции содержит ошибки; вам действительно нужно его обновить.