如何创build一个dynamicvariables并为其赋值?

我正在尝试创build一个dynamicvariables并将其分配给它

 #!/bin/bash . . active_id=$p_val flag_$active_id=100 

但是我这样做是错误的,有什么帮助?

Solutions Collecting From Web of "如何创build一个dynamicvariables并为其赋值?"

你可以像这样使用bash的declare伪指令和间接寻址功能

 p_val="foo" active_id=$p_val declare "flag_$active_id"="100" 

测试:

 > set | grep flag flag_foo=100 

更新:

 p_val="foo" active_id="$p_val" v="flag_$active_id" declare "$v"="100" > echo "$v" flag_foo > echo "${!v}" 100 

if condition用法:

 if [ "${!v}" -ne 100 ]; then echo "yes" else echo "no" fi # prints no 

我不知道这应该是什么好,但你可以用bash的eval语句来实现这样的东西。

以下代码说明了这一点。

 #!/bin/bash p_val="TEST" active_id=$p_val eval "flag_$active_id=100" echo $flag_TEST eval "echo \$flag_$active_id" 

终止echo的提出

 100 100 

stdout