相关疑难解决方法(0)

Bash在变量中扩展变量

我正在尝试设置我的PS1提示变量以动态选择颜色.为此,我使用颜色名称定义了一堆局部变量:

$ echo $Green
\033[0;32m
Run Code Online (Sandbox Code Playgroud)

但我希望在动态分配变量时使用它们,但我无法弄清楚如何正确扩展它们:

> colorstr="\${$color}"
> echo $colorstr
${Green}
Run Code Online (Sandbox Code Playgroud)

我试过一打组合eval,echo双引号,并且,没有似乎工作.我认为扩展变量的逻辑方式会导致错误:

> colorstr="${$color}"
-bash: ${$color}: bad substitution
Run Code Online (Sandbox Code Playgroud)

(为清楚起见,我使用的是>代替$提示字符,但我使用的是bash)

我该如何扩展该变量?即,以某种方式得到"绿色"这个词的价值\033[0;32m?并且优选地,还有bash或终端解析\033[0;32m为绿色.

编辑:我是误用${!x}eval echo $x以前的,所以我接受了这些作为解决方案.对于(也许是病态的)好奇,函数和PS1变量都在这个要点:https://gist.github.com/4383597

bash

52
推荐指数
2
解决办法
6万
查看次数

标签 统计

bash ×1