我试图在bash中设置以下环境变量:
ConnectionStrings:DefaultConnection=someValue
我使用以下命令:
export ConnectionStrings:DefaultConnection=something
在bash中,我得到以下错误:
export: 'ConnectionStrings:DefaultConnection=something': not a valid identifier
在zsh中出现以下错误:
export: not valid in this context: ConnectionStrings:DefaultConnection
如何设置变量名包含冒号的环境变量?

最佳答案

Bash不支持这样的名称,但您可以使用envpython等外部程序创建它们。
使用env
命令env将设置一个环境并运行另一个命令。例如,这里我们使用env来运行printenv

$ env a:b=3 printenv | grep ^a
a:b=3

env还可用于运行新的shell:
$ env a:b=4 bash
$ printenv | grep ^a
a:b=4

(帽尖:Chepner)。
使用python
Python允许操作环境。这个python脚本用冒号创建环境变量,然后运行一个bash实例:
$ cat colon.py
#!/bin/python
import os
import subprocess
os.environ['a:b'] = 'c'
os.environ['ConnectionStrings:DefaultConnection'] = 'someValue'
subprocess.call('bash')

如果我们运行上面的脚本,我们将得到一个新的bash提示。在新的提示符下,我们可以验证变量存在:
$ printenv | grep -E 'Connection|a:b'
ConnectionStrings:DefaultConnection=someValue
a:b=c

bash支持的环境变量名
除非有很好的理由需要不一致的变量名,否则使用bash支持的变量名要容易得多。其中包括以字母或下划线开头,后跟零个或多个字母数字字符或下划线的名称。

10-07 13:18
查看更多