gpt4 book ai didi

Bash/Zsh - 导出名称包含冒号的环境变量

转载 作者:行者123 更新时间:2023-11-29 09:50:37 24 4
gpt4 key购买 nike

我正在尝试在 bash 中设置以下环境变量:

ConnectionStrings:DefaultConnection=someValue

我正在使用以下命令:

export ConnectionStrings:DefaultConnection=something

在 bash 中我得到以下错误:

导出:'ConnectionStrings:DefaultConnection=something':不是有效标识符

在 zsh 中出现以下错误:

导出:在此上下文中无效:ConnectionStrings:DefaultConnection

如何设置变量名中包含冒号的环境变量?

最佳答案

Bash 不支持此类名称,但您可以使用 envpython 等外部程序创建它们。

使用环境

命令 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 支持的变量名要容易得多。这将包括以字母或下划线开头,后跟零个或多个字母数字字符或下划线的名称。

关于Bash/Zsh - 导出名称包含冒号的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47827887/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com