Win10 GitBash中如何echo输出名称带空格的长环境变量?
GitBash读取带空格环境变量的正确方法
失效原因说明
Bash 语法规范中默认仅支持由字母、数字、下划线组成的变量名,遇到带空格的变量名时,$ 语法会将空格后的内容识别为独立参数,因此无法直接读取。同时 Windows 原生的 %变量名% 语法不兼容 GitBash 的 Bash 运行环境,也无法生效。
可用解决方法
方法1:使用 printenv 命令直接读取(最简便)
将带空格的变量名用双引号包裹作为 printenv 的入参即可直接输出变量值:
printenv "IntelliJ IDEA Community Edition"
如果需要将值赋值给其他变量后续使用,写法如下:
# 赋值给自定义变量 idea_bin_path=$(printenv "IntelliJ IDEA Community Edition") # 输出自定义变量的值,注意变量也要用双引号包裹 echo "$idea_bin_path"
方法2:从 env 输出中过滤提取
如果不确定变量名的准确拼写,可以结合你之前用到的 grep 命令过滤后提取值:
env | grep "^IntelliJ IDEA Community Edition=" | sed 's/^[^=]*=//'
上述命令会先匹配以目标变量名开头的环境变量行,再通过 sed 去掉变量名和等号前缀,仅返回变量值。
注意事项
所有涉及带空格的变量名、变量值的操作,都需要用双引号包裹,避免空格被 Bash 识别为参数分隔符导致执行异常。比如要调用该路径下的IDEA启动程序,写法为:
"$(printenv "IntelliJ IDEA Community Edition")/idea64.exe"
内容的提问来源于stack exchange,提问作者ERJAN
相关产品推荐
相关产品推荐

