sh +如何在sh中使用数组以打印数组中的所有值

时间:2014-07-03 07:03:54

标签: arrays linux shell sh

我想在我的sh脚本中使用数组

我的目标是为以下值创建数组 - b c 并按数组打印所有值

我成功打印每个数组,但是我无法打印数组中的所有值

请查看以下示例

在arr中设置每个值

n=1
eval arr$n=a
n=2
eval arr$n=b
n=3
eval arr$n=c

打印arr中的每个值

n=1
eval echo \$arr$n
a
n=2
eval echo \$arr$n
b
n=3
eval echo \$arr$n
 c

现在我想用$ arr

打印所有值

然后我得到以下内容,以获得" a b c"

n="*"

eval echo \$arr$n

{*}*

值应为:

a b c

1 个答案:

答案 0 :(得分:0)

您创建的内容根本不是数组。它只有3个独立变量,称为arr1arr2arr3。你可能在一个空目录中工作,所以当你说

eval echo \$arr$n

$arr被扩展为空,因为它不存在,并且$n被扩展为*,因为目录中没有文件。如果有,$n,包含*,将扩展到目录中的文件列表。

欢迎使用shell编程。 : - )