如何创建动态变量并为其分配值? [英] How to create a dynamic variable and assign value to it?

查看:64
本文介绍了如何创建动态变量并为其分配值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试创建动态变量并为其分配100

I am trying to create a dynamic variable and assign 100 to it

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

但是这样做有任何帮助吗?

But I am getting error in doing so, any help ?

推荐答案

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

You can use bash's declare directive and indirection feature like this:

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中的用法:

Usage in if condition:

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

# prints no

这篇关于如何创建动态变量并为其分配值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆