我有一个格式如下的列表。如果我用“aaa bbb ccc”替换列表,一切正常。有人有想法吗?
list=$(echo -e "1.1 1.2 mgmt")
n=0
for i in $list; do
let "array1_$i[$n]=$(date "+%N")"
((++n))
done
n=0
for i in $list; do
var=array1_$i[$n]
echo ${!var}
((++n))
done
提前感谢任何想法...
答案 0 :(得分:1)
您可以将shebang行更改为
#!/bin/bash -xv
查看bash尝试运行的内容。实际上,您正在尝试创建名为array1_1.1
的变量,该变量不是有效的变量名称:不允许使用点。
答案 1 :(得分:1)
.
不是标识符中的有效字符。
man bash
:
name A word consisting only of alphanumeric characters and underscores, and beginning with an alphabetic character or an underscore. Also referred to as an identifier