【问题标题】:Set a new enivironment variable using a file content使用文件内容设置新的环境变量
【发布时间】:2021-03-10 10:59:23
【问题描述】:

我有某个file.txt,里面有下一个内容


#pfc.diskusage 0.90 0.95

如何设置两个新的环境变量,在文件中给出数字 0.90 和 0.95 作为期望设置两个新环境变量的输入?


{...,'NEW_ENV_VAR1': '0.90',
 'NEW_ENV_VAR1': '0.95'}

我通过使用指定行的“sed”命令进行了尝试,但我无法让它以这种方式工作。

【问题讨论】:

  • 我想知道您是在为另一个程序设置 env 变量之后 - 还是在从该输入文件转换为一些 json-ish 输出之后
  • 不,我不是。我只需要设置环境变量。
  • to set two new environment variables like this? {...,'NEW_ENV_VAR1': '0.90', 'NEW_ENV_VAR1': '0.95'} 像 json?环境变量是环境变量,不是json,这个{...和它有什么关系?您是要设置环境变量还是创建 json?
  • 这只是一个显示示例,而不是实际的环境变量。

标签: bash shell unix sh


【解决方案1】:

我认为您可能会尝试使用数组来访问这些列:

X=( `echo '#pfc.diskusage 0.90 0.95'` )
export NEW_ENV_VAR1=${X[1]}
export NEW_ENV_VAR2=${X[2]}

【讨论】:

  • 请不要使用`反引号-改用$(...)
【解决方案2】:
readarray -d ' ' -n 3 -s 1 <file.txt
export NEW_ENV_VAR1=${MAPFILE[0]}
export NEW_ENV_VAR2=${MAPFILE[2]}

解释:

readarray 将标准输入的内容读入名为MAPFILE 的数组中。通常一行会占用一个数组元素。 -d ' ' 选项表示我们要使用空格作为记录分隔符,-s 1 表示我们要跳过第一条记录(即 #pfc.diskusage

【讨论】:

    猜你喜欢
    • 2019-01-09
    • 2013-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-22
    相关资源
    最近更新 更多