1

Когда я ввожу значение, которое имеет знак доллара $, среда только считывает первую его часть, и это потому, что созданный файл env ставит двойные кавычки в значениях вместо одиночных кавычек. В любом случае? Значение не может быть изменено, поскольку это токен доступа из службы, которую я не контролирую.

Пример:

Файл ENV генерируется, как: export MY_VAR="my$value"

Запуск, что приводит к: MY_VAR=my

ответ

1

Это оценивает $value в качестве переменной и преобразование его в пустую строку так, что переменная не существует в среде. Попробуйте уйти от $ характера, как это:

export MY_VAR="my\$value"

В качестве альтернативы, используйте одинарные кавычки, которые должны предотвратить расширение переменного:

export MY_VAR='my$value'

+0

Я попытался экранировать, но это заканчивается как '' 'my \\' '' в среде, и я не могу управлять кавычками для значений, которыми управляет Beanstalk. Я закончил тем, что использовал другой символ и заменил его в коде. Слабое решение, но работает. –

+0

Одиночные кавычки отлично работали для меня –

1

кажется, что знак доллара и последующие символы интерпретируются (например, bash) в качестве переменной среды и заменяется ее значением. В то время как переменная среды $ value (очевидно) пуста, она просто вычисляется как «my» и (пустая строка).

меня ушло некоторое время, чтобы найти обходной путь, но это один (хотя довольно некрасиво) работает для меня: Просто окружить строку с

$(echo '<your string here>') 

и убедитесь, что все знаки доллара экранируются ' \ 'знак, например используйте следующую строку в качестве значения свойства среды ElasticBeanStalk в

MY_VAR=$(echo 'my\$value') 

В результате, значение «моего $ значения» будет передано в приложении как my_var.

0

Хотя это старый вопрос, сегодня я сталкиваюсь с той же проблемой. Хотя решение @ pkaul работает, оно уродливо. После некоторых экспериментов я обнаружил, что мне просто нужно использовать три обратных косых черты: