1、本文是关于shell脚本编程中,对于for循环语句的使用总结。
2、语法格式
for 变量名 in 单词表
do
命令表
done
3、变量名:即为用户自定义变量
单词表:对变量赋值的表单
命令表:循环执行的shell命令
4、值得一问的是,for语句既然作为一个循环语句,那他是如何实现循环的呢?循环次数跟谁有关呢?很简单,循环的次数跟单词表中单词的个数相同!
5、如图1所示,此程序中单词表为:1 2 3 4。单词个数为四个,因此for语句循环执行4次。
6、知道了循环的次数与单词表的单词数相同,那每次循环for语句又是如何执行的呢?如图1所示的程序中:
a) 第三行程序:变量A依次被赋值为:1、2、3、4。
b) 因此第六行打印语句需执行四次:第一次打印1、第二次打印2、...第四次打印4。
c) $A:在这里$是获取变量A的值
总之:需要将单词表中的单词依次赋值给变量A,同时每赋值一次,都需执行一次do...done之间命令表的内容。
7、举个相似的例子,如图2所示。
a) $* :所有命令行的参数(除第一个:执行语句除外)。
b) 此程序中的单词表:hello 、world、huaqing、yuan、jian
c) 即for语句循环执行五次。执行结果如图所示。
8、再举个的例子,如图3所示。
a) 第3行 :建立一个名为dir的目录
b) 第4行 :将ls命令的执行结果提取出来赋值给list变量
c) list :在此程序中相当于单词表。list的单词数是由ls命令结果决定的,即当前路径下有多少个文件,list就有几个单词。
d) 第6行 :将list里的单词依次赋值给变量A,并执行do...done里的内容
e) 第8行 :判断是否为普通文件
f) 第10行:判断如果是普通文件则拷贝该文件到目录dir下(-f 判断普通文件)
g) 第11行:打印提示信息及已拷贝的文件名
9、执行结果如图4所示
命令一:$ ls
查看当前路径下所有文件及文件夹。
命令二:$ ./1.sh
执行1.sh脚本文件。会在终端上打印信息,即源文件11行的执行结果。
命令三:$ ls
执行结束后再次查看,会出现dir目录文件,即源文件3行的执行结果。
命令四:$ ls dir/
查看dir/目录下的文件,会显示已拷贝的普通文件,即源文件8、9、10行的执行结果。
更多推荐
linux脚本打印循环次数,Shell脚本编程——for循环
发布评论