[英]For loop shell script with no list or terminating condition?
刚刚在我实习的剧本中看到了这一点。 我已经用谷歌搜索过,但是对于我的一生,我无法弄清楚这是什么样的for循环。
# Declare variables for use
35 args=$*
36 noofargs=$#
37 isjavapassed="false"
38 isjavavalid="false"
39 argsarray=""
40 d64option=""
41
42 varcount=0;
43 for tempvar
44 do ....
这个for循环如何运作? 它只是为了tempvar吗? 终止条件或要遍历的列表在哪里? 除了评论之外,没有其他内容。 任何帮助深表感谢。 谢谢。
从Bash参考手册中有关循环构造的部分:
for命令的语法为:
以[[用[单词…]]为名称]; ]执行命令; 做完了
展开单词,然后对结果列表中的每个成员执行一次命令,将名称绑定到当前成员。 如果不存在“ in word”,则for命令对设置的每个位置参数执行一次命令,就像已指定“ in $ @”中一样(请参见特殊参数)。 返回状态是最后执行的命令的退出状态。 如果单词扩展中没有项目,则不执行任何命令,并且返回状态为零。
因此,在这种情况下,“ in word”丢失了,因此循环了位置参数。
语法的基础是:
for arg in [list]
do
command(s)...
done
省略for循环的in [list]部分会使循环在$ @位置参数上运行。
尝试使用和不使用参数运行以下脚本:
for a
do
echo -n "$a "
done
源示例11-6
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.