bash - 设置由字符串定义的环境变量?
问题描述
我正在编写一个脚本来将配置变量从云存储服务复制到环境变量中(仅用于本地开发,以避免在应用程序或测试服务器启动时发出一大堆请求)。我已经有一个文件,它是以行分隔的变量名列表。
我知道如何使用已知名称设置环境变量:
export SOME_VAR=some_value
我不知道如何使用“未知”(在写入时)名称设置环境变量。所以我会读入那个变量名文件,然后遍历列表,请求exporting
每个变量。
所以主要问题是:如何以编程方式设置一个环境变量,其名称在运行时仅存在于字符串中?
解决方案
您的脚本实际上不应该与 cat|while 一起使用,因为在这种情况下,while 将在子进程中执行,并且任何设置或导出都只会影响子进程。循环结束后,所有变量都将丢失。
试试这个:
#! /usr/bin/env bash
while IFS= read -r line; do
export $(echo ${line^^})=$(get_value_from_secret_store "$line")
done < list_of_vars_file.txt
推荐阅读
- rdf - 如何创建可重用谓词 (RDF)?
- c# - Unity3D:将所有游戏对象转换为相同大小,而不管其比例如何
- javascript - 获取每个项目的完整依赖项列表,当最初为每个项目指定一个级别的子依赖项和父依赖项时
- c# - Atata 附加到浏览器实例
- r - 变更单边距显示在 facet_grid ggplot2 中?
- r - 我需要在 R 中使用循环,但不知道从哪里开始
- python - 明细表美汤解析
- javascript - 在反应中循环图像的最佳方法
- apache-kafka - 无法在 Confluent Schema 注册表中注册模式
- python - 在 Python 中使用 BeautifulSoup 忽略其他人时,如何获取特定的“字体大小”?