0

我有一个格式如下的列表。如果我将列表替换为“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

提前感谢您的任何想法...

4

2 回答 2

1

您可以将 shebang 线更改为

#!/bin/bash -xv

看看 bash 试图运行什么。实际上,您正在尝试创建一个名为 的变量array1_1.1,这不是一个有效的变量名:不允许使用点。

于 2013-05-14T09:20:15.573 回答
1

.不是标识符中的有效字符。

man bash

       名称 仅由字母数字字符和下划线组成的单词,以及
              以字母字符或下划线开头。还
              称为标识符
于 2013-05-14T09:23:38.487 回答