bash - 检查具有动态名称的 Bash 变量

标签 bash variables eval associative-array variable-names

我正在尝试从我知道名称后缀的 Bash 变量中读取,但我想遍历前缀。

下面我举个例子:

var1_name="variable1"
var1_size="2"
var2_name="variable2"
var2_size="3"
vars=(var1 var2)

for v in "${vars[@]}"
do
    echo $v_name
    echo $v_size
done

我希望输出如下所示:

variable1
2
variable2
3

有什么可以用 Bash 做的吗? 我已尝试使用 eval 和关联数组,但我仍然找不到检查已定义变量的方法。

最佳答案

以下适用于我。您需要先构造变量,然后使用感叹号对其求值。

var1_name="variable1"
var1_size="2"
var2_name="variable2"
var2_size="3"
vars=("var1" "var2")

for v in "${vars[@]}"
do
    name=${v}_name
    size=${v}_size
    echo ${!name}
    echo ${!size}
done

O/P

variable1
2
variable2
3

关于bash - 检查具有动态名称的 Bash 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43306880/

相关文章:

linux - bash 脚本的 awk 部分无法正常工作

linux - 如何在 Linux 上获得总体 CPU 使用率(例如 57%)

python - 删除变量中的变量

Java:在 JFrame 中使用 add(ClassName) 时如何访问类变量

java - 如何找到 R 中 eval 期间出现的问题?

r - 如何编写一个也接受字符输入的 NES 函数?

linux - Linux 中基于扩展名的颜色代码文件

linux - 如何通过 bash 脚本中的管道从命令中提取 2 条信息输出?

variables - 保存变量 Prolog

linux - 我遇到双引号和 eval 命令的问题