13.5.2 for ..do ...done (固定循环)
for var in con1 con2 con3 ...
do
程序段
done
以上面的例子来说,这个 $var 的变量内容在循环工作时:
1. 第一次循环时, $var 的内容为 con1 ;
2. 第二次循环时, $var 的内容为 con2 ;
3. 第三次循环时, $var 的内容为 con3 ;
4. ....
范例
简单例子:
#!/bin/bash
# Program:
# Using for .... loop to print 3 animals
# History:
# 2015/07/17 VBird First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
for animal in dog cat elephant
do
echo "There are ${animal}s.... "
done
让我们想象另外一种状况,由于系统上面的各种账号都是写在 /etc/passwd 内的第一个字段,你能不能透过管线命令的 cut 捉出单纯的账号名称后,以 id 分别检查使用者的标识符与特殊参数呢?由于不同的 Linux 系统上面的账号都不一样!此时实际去捉 /etc/passwd 并使用循环处理,就是一个可行的方案了!程序可以如下:
[dmtsai@study bin]$ vim userid.sh
#!/bin/bash
# Program
# Use id, finger command to check system account's information.
# History
# 2015/07/17 VBird first release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
users=$(cut -d ':' -f1 /etc/passwd) # 撷取账号名称
for username in ${users} # 开始循环进行!
do
id ${username}
done
13.5.3 for do done的数处理
语法如下:
for (( 初始; ; 限制; ; 执行步阶 ))
do
程序段
done
这种语法适合于数方式的运算当中,在 for 后面的括号内的三串内容意义为:
初始:某个变量在循环当中的起始,直接以类 i=1 设定好;
限制:当变量的在这个限制的范围内,就继续进行循环。例如 i<=100;
执行步阶:每作一次循环时,变量的变化量。例如 i=i1。shell脚本for循环
得注意的是,在『执行步阶』的设定上,如果每次增加 1 ,则可以使用类『i』的方式,亦即是 i 每次循环都会增加一的意思。
#!/bin/bash
# Program:
# Try do calculate 12....${your_input}
# History:
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-58905-8.html
理由就是保卫岛礁安全
猪狗不如的教授
一个老股民