繁体   English   中英

对于没有列表或终止条件的循环shell脚本?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM