экспорт: `)’: недопустимый идентификатор

#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 Возможны некоторые обходные пути, но это быстро выходит из-под контроля. Определение функции содержит ошибки; вам действительно нужно его обновить.