如何为名称在bash中的变量中的变量赋值?

弗雷德·丹尼斯

我有一个如下所示的配置文件:

$ cat .config
PARAM1 = avalue                 # a comment
PARAM2 = "many values"          # another comment
# PARAM3=blabla

我写了一个函数来读取它:

get_from_config_file()
{
        A=$(grep "$1" ${config_file} | grep -v "^#" | sed s'/^[[:space:]]*//g' | sed s'/#.*$//' | sed s'/^.*=[[:space:]]*//' | sed s'/[[:space:]]*$//' | sed s'/"//g')
        echo "$A"
}

然后我可以从工作正常的配置文件中读取参数:

PARAM1=$(get_from_config_file "PARAM1")
PARAM2=$(get_from_config_file "PARAM2")

但是我想让它变得更好(我在这个配置文件中有很多参数)所以我希望能够获取我所有参数的值,然后在一个简单的 for 循环中分配给变量——在这里我遇到了麻烦:

for name in PARAM1 PARAM2
do
        value=$(get_from_config_file "$name")
        echo $name, $value
        # How to assign here $value to a variable named PARAM1, PARAM2 which is contained in name ?
        # Note that I do not want to use an array for this
        # param[$name]="$value"
done

谢谢,

直接使用定义变量 declare

for name in PARAM1 PARAM2
do
    declare -gx "$name"="$(get_from_config_file "$name")"
    #echo $name, $value
    # How to assign here $value to a variable named PARAM1, PARAM2 which is contained in name ?
    # Note that I do not want to use an array for this
    # param[$name]="$value"
done
echo PARAM1="$PARAM1"
echo PARAM2="$PARAM2"

运行此命令时declare -gx "$name"="$value",Bash 首先扩展变量namevalue然后执行命令,declare -gx PARAM1=foobar

declare options:
  -g    create global variables when used in a shell function; otherwise
        ignored
  -x    to make NAMEs export

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何为终端中的变量赋值?

来自分类Dev

在XSL转换中为名称空间使用变量

来自分类Dev

为名称在变量中的属性编写值的正确方法?

来自分类Dev

如何为变量赋值并打印

来自分类Dev

如何为 SQL 变量赋值

来自分类Dev

Golang中的变量赋值

来自分类Dev

if中的zsh变量赋值

来自分类Dev

if中的zsh变量赋值

来自分类Dev

Haskell中的变量赋值

来自分类Dev

在bash中编辑变量的名称

来自分类Dev

在bash中编辑变量的名称

来自分类Dev

如何在订阅中为变量赋值?

来自分类Dev

Swift:如何为数组内的变量赋值?

来自分类Dev

如何为列表类型的类变量赋值?

来自分类Dev

Swift / iOS:如何为OrderedDictionary变量赋值?

来自分类Dev

如何为 imread 函数内的变量赋值?

来自分类Dev

在变量名称由两个变量组成的bash中,如何导出变量?

来自分类Dev

(caadr exp)在赋值变量中

来自分类Dev

变量赋值中“and”的用例

来自分类Dev

bash 变量中的变量

来自分类Dev

如何在jQuery中的变量中调用函数赋值

来自分类Dev

在Java中,如果未传递任何参数,如何为变量number = Integer.parseInt(args [0])赋值?

来自分类Dev

如何评估变量bash脚本中的变量?

来自分类Dev

如何为名称空间添加名称?

来自分类Dev

bash数组名称中的变量

来自分类Dev

名称中带有变量的bash数组

来自分类Dev

如何为 Kivy 标签中的变量编码?

来自分类Dev

如何增加bash中的变量?

来自分类Dev

如何影响?bash中的变量