这是代码段。 在这里,我看到了错误的放置()的错误
#!/bin/sh
#!/usr/bin/perl -w
# array declaration
arr= (one two three) # seeing error here
# for loop
for (( i=0;i<4;i++ ))
do
echo "\n $i : ${a[i]}"
done
答案 0 :(得分:2)
这是一个小错误。
arr= (one two three)
应该是
arr=(one two three)
此外,您无法在\n
中使用echo
。如果您想使用printf
,请使用\n
。
修复其余的错误,代码看起来像这样。
# array declaration
arr=(one two three)
# for loop
for (( i=0;i<3;i++ ))
do
printf "\n $((i+1)) : ${arr[i]}"
done
echo ""
答案 1 :(得分:1)
arr= (one two three)
让我们分解它的作用。
arr=
这部分为$arr
分配一个空值(暂时,因为它在命令之前)。
(one two three)
此部分在带有参数one
和two
的子shell中运行three
,其前面指定的值为$arr
。
您是否意味着将这三个值分配给$arr
中的数组?