linux - BASH 变量值作为新定义的变量

标签 linux bash variables

我不知道怎么用英语问这个,但我想把一个变量的值作为一个新变量... 该脚本还有一个递增数字的循环,最后我想要变量 VAR1、VAR2 等。

我正在尝试这个:

COUNT=$(echo 1)
DEFINE=$(echo VAR$COUNT)
$DEFINE=$(echo gotcha!)

当我尝试这种方式时,出现以下错误消息:

~/script.sh: line n: VAR1=gotcha!: command not found

我试了一下括号和引号,但没用...有什么解决办法吗?

最佳答案

问题是 bash 需要命令作为扩展的结果,而不是赋值。 VAR1=gotcha! 不是命令,因此会出现错误。

最好用数组:

COUNT=$(echo 1)
VAR[COUNT]='gotcha!'
echo ${VAR[COUNT]}

我想 $(echo 1) 代表一个更复杂的命令,否则你可以只使用 COUNT=1

关于linux - BASH 变量值作为新定义的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26680795/

相关文章:

linux - 在 Linux 中删除以特定字符串结尾的特定文件

c++ - linux中system()函数中waitpid()函数是如何实现的

linux - 如何实时合并三个TCP流

bash - catalina.sh中的-r是什么意思?

php - 将字符串和变量传递给 php 函数

python - 使用 BeautifulSoup 迭代 XML 以提取特定标签并存储在变量中

linux - 安装 mclust R 包

linux - bash 脚本应该使用 sudo 还是假定使用 sudo?

linux - Bash 脚本查找和复制具有多个扩展名的文件,包括具有 2 个或 3 个扩展名的文件

templates - Jinja 变量的范围可以超出内部 block 吗?