bash - 展开名称中带有正斜杠的 Bash 变量
问题描述
在类似的事情之后
env "my/test=hi" bash
我现在有一个名为 的环境变量集my/test
,但是我尝试扩展它的各种方法似乎都不起作用并产生各种奇怪的错误。例如,直接选项:
$ echo $my/test
/test
更加聪明:
$ echo $"my/test"
my/test
仍然没有:
$ echo ${my/test}
(只是返回\n
)
运行printenv
我可以清楚地看到变量已设置。我如何引用它,以便它像“通常”命名的变量一样扩展/替换?
解决方案
没有。这不是一个有效的 shell 变量名。bash将 a 定义name
为:
仅由字母、数字和下划线组成并以字母或下划线开头的单词。名称用作 shell 变量和函数名称。也称为标识符。
您必须解析 printenv 的输出以获取该值。
推荐阅读
- ruby - 我是 ruby 语言的新手,正在尝试创建一个文本冒险游戏,我想包含两个字符串
- python - 获取插入MSSQL的行ID时,来自pyodbc的Python中的函数序列错误
- c - 此代码显示错误。你能教我什么是错误以及如何改变它吗?
- java - PDB 文件到角度以再次转换为 PDB 格式
- html - 为什么这个高度为 100vh 的 div 没有覆盖整个视口?
- javascript - 使 ESLisnt 规则在函数中不使用 async/promise
- c# - StreamWriter 不刷新
- firebase - 跨所有选项卡获取 Firebase 会话
- git - 使用 SSH 的 Maven JgitFlow 插件身份验证失败
- python - 无法使用 python 脚本获取 api 密钥