在实习期间,我在剧本中看到了这一点。我用谷歌搜索了但是为了我的生命 我无法弄清楚这是什么样的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?终止条件或迭代的列表在哪里?除此之外没有什么可以评论。任何帮助深表感谢。谢谢。
答案 0 :(得分:2)
从Looping Constructs上的Bash参考手册部分:
for命令的语法是:
代表名称[[in [words ...]]; ]做命令;完成
展开单词,并对结果列表中的每个成员执行一次命令,其名称绑定到当前成员。如果'in words'不存在,for命令会对设置的每个位置参数执行一次命令,就好像已经指定'in“$ @”'一样(参见特殊参数)。返回状态是执行的最后一个命令的退出状态。如果单词扩展中没有项目,则不执行任何命令,返回状态为零。
这就是“缺少单词”的情况,因此它会循环遍历位置参数。
答案 1 :(得分:1)
语法基础是:
for arg in [list]
do
command(s)...
done
省略for循环的in [list]部分会导致循环运行 on $ @ - 位置参数。
尝试使用和不使用参数运行以下脚本:
for a
do
echo -n "$a "
done
SOURCE例11-6