如何设置带点的环境变量?

bsc*_*han 6 bash environment-variables macos

我找不到用点 (.) 设置环境变量的方法。

例如:

export mule.home=/Users/chandra/mule/
export {mule.home}=/Users/chandra/mule/
export $mule.home=/Users/chandra/mule/
Run Code Online (Sandbox Code Playgroud)

都抛出一个错误,表明它不是一个有效的标识符,比如:

-bash: export: `.home=/Users': not a valid identifier
Run Code Online (Sandbox Code Playgroud)

设置mule_home有效但无效mule.home。任何想法,建议?

slh*_*hck 11

那是因为带有点的名称——你可以相信这里的外壳——不是有效的标识符。来自man bash

name 仅由字母数字字符和下划线组成并以字母字符或下划线开头的单词。也称为标识符。

点不是字母数字字符,也不是下划线。您可以创建类似的内容:

env mule.home=/Users/chandra/mule/
Run Code Online (Sandbox Code Playgroud)

但是,据我所知,您将无法真正阅读此内容。此外,bash 应该首先阻止您创建这些标识符。


我的建议是创建带有下划线的环境变量,并且可能使用UPPERCASE单词,因为这是常见的做法。

或者使用另一个支持环境变量中的点的 shell,例如cshtcsh