首页 > 解决方案 > 展开名称中带有正斜杠的 Bash 变量

问题描述

在类似的事情之后

env "my/test=hi" bash

我现在有一个名为 的环境变量集my/test,但是我尝试扩展它的各种方法似乎都不起作用并产生各种奇怪的错误。例如,直接选项:

$ echo $my/test
/test

更加聪明:

$ echo $"my/test"
my/test

仍然没有:

$ echo ${my/test}

(只是返回\n

运行printenv我可以清楚地看到变量已设置。我如何引用它,以便它像“通常”命名的变量一样扩展/替换?

标签: bashenvironment-variablessh

解决方案


没有。这不是一个有效的 shell 变量名。bash将 a 定义name为:

仅由字母、数字和下划线组成并以字母或下划线开头的单词。名称用作 shell 变量和函数名称。也称为标识符。

您必须解析 printenv 的输出以获取该值。


推荐阅读