我目前正在编写一个awk
脚本在一个bash脚本中。我的一个论点需要分解和循环。例如:对于1234
的参数,我需要按照编写的顺序遍历每个数字。所以,2413
不等于。我使用split
来创建一个数组,然后循环遍历数组。我认为它会按顺序循环,但事实并非如此。awk for-in循环给出意想不到的输出?
我的代码如下:
split(cols,toShow,"")
for (c in toShow)
printf "%s\n",c
cols
传递给使用-v
选项awk
命令,并给出了下面的输出:
4
1
2
3
这个测试了几次后,出现不同参数长度以及使用数字和字母时,似乎for
循环开始于数组的元素4,按顺序循环到结尾,然后遍历元素s 1到3,而不是预期从元素1开始并循环到结尾。
无论如何改变行为还是我做错了什么?
EDIT为了清楚起见,我在Xubuntu的11.10
它输出索引的事实并不重要,因为它仍然显示它不是以正确的顺序输出,但是改为更长的for循环修复了问题,所以谢谢:) –