一尘不染

如何创建动态变量并为其分配值?

linux

我正在尝试创建一个动态变量并分配100给它

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

但是我这样做有错误,有帮助吗?


阅读 216

收藏
2020-06-02

共1个答案

一尘不染

您可以使用 bash的声明指令和间接功能, 如下所示:

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
2020-06-02