Bash 将值重新分配给变量 "command not found"

标签 bash

<分区>

知道为什么会这样吗?为什么我必须手动显式重新分配变量,但如果我在变量名称中有另一个变量却不能这样做?

脚本:

#!/bin/bash

a_1=1
a_2=1

for temp in 1 2
do
    a_$temp="2"
    echo $((a_$temp))
done

a_1=2
a_2=2
echo $a_1
echo $a_2

输出:

[dgupta@della4 Rates_Of_Quenching]$ ./test.sh
./test.sh: line 8: a_1=2: command not found
1
./test.sh: line 8: a_2=2: command not found
1
2
2

最佳答案

代替:

a_$temp="2"

使用:

declare a_$temp="2"

创建具有动态名称的变量。

关于Bash 将值重新分配给变量 "command not found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24046290/

相关文章:

bash - Shell脚本检查文件是否存在,是否有读权限

bash - 从 ifconfig 输出中提取网络掩码并以 CIDR 格式打印

regex - 如何使用sed从字符串中提取文本?

java - bash 脚本问题启动程序

python - 在 bash 或 python 中有没有一种方法可以从一个脚本中获取输出并使用另一个脚本与之交互?

bash - 将 IP 地址放入 bash 变量中。有没有更好的办法

java - Bash 脚本子进程锁定 Java 应用程序/控制台

html - 将单个文件夹中的一组 html 文件的 &lt;title&gt; 标记内的所有文本大写

linux - 禁用挂起脚本

linux - Bash脚本移动具有特定名称的前N个文件