首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将带有变量的字符串连接到Bash中的新变量?

如何将带有变量的字符串连接到Bash中的新变量?
EN

Stack Overflow用户
提问于 2013-05-31 03:18:51
回答 2查看 159关注 0票数 0

我有这样的外壳脚本,

代码语言:javascript
复制
#!/bin/bash
foxy1="foxyserver"
H="1"

输出应该是foxyserver。

我试过这个,

代码语言:javascript
复制
echo $foxy$H

这给了我

代码语言:javascript
复制
1

然后我用了

代码语言:javascript
复制
str="foxy$H"
echo $str

输出是

代码语言:javascript
复制
foxy1

我怎么能这么做?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-31 03:25:41

使用indirect variables, as described in BashFAQ #6

代码语言:javascript
复制
$ foxy1="foxyserver"
$ H="1"
$ varname="foxy$H"
$ echo "${!varname}"
foxyserver
票数 6
EN

Stack Overflow用户

发布于 2013-05-31 03:24:13

使用eval,您可以进行间接操作:

代码语言:javascript
复制
eval echo \$$str

输出

代码语言:javascript
复制
foxyserver

警告:这并不是很好的做法。例如,如果您有str=(rm -rf ~/*),那么eval表达式将是$(rm -rf ~/*)。因此,请按查尔斯·达菲的建议,警告并使用间接。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16849235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档