【问题标题】:How I can create environment parameter in bash or from script如何在 bash 或脚本中创建环境参数
【发布时间】:2018-10-20 06:32:21
【问题描述】:

我想创建 env 参数 密钥是a:b or a@b 我需要从 bash 脚本或终端执行,它应该在 linux 或 windows 上工作

当我尝试它时export a:b=c 我有一个错误

not a valid identifier

当我尝试 export tempKey = a:b 然后它起作用了,但是我不知道如何使用值 a:b 将其创建为键

您能指教一下吗?

【问题讨论】:

  • 在标准 shell 中,变量名由字母数字加下划线组成,而不是以数字开头。名称不能包含冒号或 at 符号。一些 shell 允许对此默认字符集进行一些扩展。如果你的不这样做,那么除了更改 shell 之外别无他法,要么通过调整你正在使用的那个(获取源代码,更改它,重新编译它),要么通过获得一个已经支持扩展符号的 shell。如果您需要可移植的 shell 脚本,请不要使用扩展符号。
  • 可以用shell脚本写吗?
  • 可以在 shell 脚本中写什么吗?你得到'not a valid identifier'作为错误,所以你的shell不允许你使用a:b作为变量名。为什么你认为你需要这个设施?默认的解决方案是使用下划线代替标点符号:export a_b=c 在大多数 Bourne-shell 衍生物中是完全符合犹太教规定的(尽管不是在原始 Bourne shell 中)。
  • 不是从 git bash 而是从 shell 脚本导出 a:b=c
  • 我需要它来让 npm env 更改环境值,所以密钥应该是 npm_config_key=value 我的密钥与注释范围含义有关的问题 @myScope:key=value 所以我该怎么做在这种情况下添加环境变量?

标签: linux shell environment-variables


【解决方案1】:

没有一个常用的 unix shell 允许您创建名称中包含标识符中不合法的字符(通常是字母、数字和下划线)的 var。最简单的解决方法是使用env 命令,因为它不会对置于环境中的字符串施加任何限制。例如,env a:b=c a_cmd 其中a_cmd 是需要该环境字符串的任何命令。如果您希望它成为 shell 环境的一部分,请执行exec env a:b=c $SHELL。显然,新的 shell 将无法使用该 var,因为 $a:b 不是有效的 var 引用,即使您将 var 名称括在大括号中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-07
    • 2020-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-29
    • 2022-01-17
    相关资源
    最近更新 更多