【发布时间】:2012-11-14 05:10:06
【问题描述】:
我正在制作一个 bash 脚本,我需要在其中打印一个像这样递增的数字:
0000
0001
0002
0003
0004
我做了这个,但没有工作:
#!/bin/bash
i=0
pass[0]=0
pass[1]=0
pass[2]=0
pass[3]=0
for i in $(seq 1 9)
pass[3]="$i"
echo ${pass[*]}
done
我将脚本粘贴到 cli 上,我得到了这个。
$ ~ #!/bin/bash
$ ~ i=0
$ ~ pass[0]=0
$ ~ pass[1]=0
$ ~ pass[2]=0
$ ~ pass[3]=0
$ ~ for i in $(seq 1 9)
> pass[3]="$i"
bash: error sintáctico cerca del elemento inesperado `pass[3]="$i"'
$ ~ echo ${pass[*]}
0 0 0 0
$ ~ done
bash: error sintáctico cerca del elemento inesperado `done'
$ ~
【问题讨论】:
-
这些值是否必须在数组中,或者您可以根据需要生成它们吗?
-
您的
for i in ...缺少对应的do- 例如for i in $(seq 1 9); do pass[3]="$i"; done -
有很多方法可以完成这项任务,但是为了尽量减少更改并回答代码中的问题,您忘记了 for 表达式后面的“do”。
标签: linux arrays bash printing sh