如何读取动态声明的bash变量的值?

lgsit

我对bash脚本有一些麻烦,也许有人可以帮助我。

在我的脚本中,我使用如下循环来动态定义变量:

somecolors="red yellow green blue" # read out of a file, may vary
for color in $(echo $somecolors); do
    # Actually, here is more code that generates the value I 
    # want to set for this variable, that is being written
    # into "$value"
    declare use_color_$color=$value
done

结果是定义了四个变量:

use_color_red=1
use_color_yellow=1
use_color_green=1
use_color_blue=1

到现在为止还挺好。但是如何动态阅读这些内容?我想到起诉“ for”循环。例如:

for color in $(echo $colors); do
    echo $use_color_${color}
done

但这是行不通的。

如何将两个变量名组成一个?

提前致谢!

控制台盒

最好改用索引数组和关联数组。引用和取消引用变量变量确实是错误的。

somecolors=(red yellow green blue)
declare -A use_color

for color in "${colors[@]}"; do
    use_color[$color]=$value  ## Or do you mean use_color[$color]=$color?
done

准予$value == 1,当你做的时候echo "${use_color[red]}"你会得到1

一种变化:

declare colors=(red yellow green blue)

declare -A use_color    
use_color[red]=1
use_color[yellow]=1
use_color[green]=1
use_color[blue]=1

for color in "${colors[@]}"; do
    echo "use_color[$color]=${use_color[$color]}"
done

输出:

use_color[red]=1
use_color[yellow]=1
use_color[green]=1
use_color[blue]=1

类似地:

declare -A use_color=([red]=1 [yellow]=1 [green]=1 [blue]=1)

for color in "${!use_color[@]}"; do
    echo "use_color[$color]=${use_color[$color]}"
done

输出:

use_color[yellow]=1
use_color[red]=1
use_color[blue]=1
use_color[green]=1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何读取动态声明的bash变量的值?

来自分类Dev

从数组值声明“变量”还是“动态”?

来自分类Dev

如何读取动态对象值

来自分类Dev

Bash 从 Bash 中的变量读取 CSV 值

来自分类Dev

在bash中,如何延迟对字符串中包含动态变量的变量进行插值

来自分类Dev

如何在bash -c中声明变量

来自分类Dev

如何更改从函数声明的变量的值?

来自分类Dev

如何更新已声明变量的值

来自分类Dev

如何更新已声明变量的值

来自分类Dev

如何在bash中使用管道(stdin)传递值以读取变量

来自分类Dev

如何从bash中的php文件读取变量

来自分类Dev

如何从bash中的变量逐行读取?

来自分类Dev

我如何从bash中的变量逐行读取

来自分类Dev

bash +通过bash脚本从文件中读取变量和值

来自分类Dev

如何声明一个变量以从其他表列读取?

来自分类Dev

bash如何动态改变环境变量?

来自分类Dev

如何在bash中动态创建变量?

来自分类Dev

如何读取动态字符串并将每个键字符串值存储到变量中?

来自分类Dev

如何读取动态字符串并将每个键字符串值存储到变量中?

来自分类Dev

声明的变量读取为null

来自分类Dev

PHP动态变量声明

来自分类Dev

PLSQL-动态声明变量

来自分类Dev

SAS动态声明宏变量

来自分类Dev

PHP动态变量声明

来自分类Dev

声明动态变量 Laravel

来自分类Dev

如何从SamlSecurityToken读取声明

来自分类Dev

读取变量,直到输出大于BASH中的某个值

来自分类Dev

读取变量,直到输出大于BASH中的某个值

来自分类Dev

动态创建bash变量并访问其先前定义的值