shell编程之十一:for循环语句应用实践

编程

循环语句" title="for循环语句">for循环语句应用实践">十一、for循环语句应用实践

(一)、for循环语法

1)普通语法

for 变量名 in 变量取值列表

do

指令。。。

done

2)c语言型for循环语法

for(( exp1;exp2;exp3))

do

指令。。。

done

(二)范例1

用for循环竖向打印1、2、3、4、5共5个数字。

[root@centos6-kvm3 scripts]# cat 11-01.sh

#!/bin/bash

for n in {1..5}

do

echo $n

done

[root@centos6-kvm3 scripts]# sh 11-01.sh

1

2

3

4

5

[root@centos6-kvm3 scripts]#

(三)范例2:

通过开发脚本实现仅设置sshd rsyslog crond network sysstat****服务开机自启动。

[root@centos6-kvm3 scripts]# cat 11-02.sh 

#!/bin/bash

for name in sshd rsyslog crond network sysstat

do

chkconfig $name on

done

[root@centos6-kvm3 scripts]# chkconfig --list | grep 3:on

crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off

network 0:off 1:off 2:on 3:on 4:on 5:on 6:off

rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off

sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

sysstat 0:off 1:on 2:on 3:on 4:on 5:on 6:off

扩展:

[root@centos6-kvm3 scripts]# chkconfig --list | grep 3:on |awk "{print "chkconfig", $1, "off"}" | bash

(四)范例3:

计算从1加到100之和。

[root@centos6-kvm3 scripts]# cat 11-03.sh

#!/bin/bash

for n in {1..100}

do

((sum=sum+$n))

done

echo $sum

[root@centos6-kvm3 scripts]# sh 11-03.sh

5050

[root@centos6-kvm3 scripts]#

方法2:

for ((i=1;i<=100;i++))

do

((sum=sum+$i))

done

echo $sum

(五)案例4:

在Linux下批量修改文件名,将文件名中的“_finished”去掉。

准备测试数据,如下。

方法1:

ls *.jpg | awk -F "_finished" "{print "mv",$0, $1$2}"|bash

方法2:

[root@centos6-kvm3 scripts]# cat 11-04.sh

#!/bin/bash

for file in `ls 11/*.jpg`

do

mv $file `echo ${file/_finished/}`

done

[root@centos6-kvm3 scripts]#

方法3:

rename "_finished" "" *.jpg

以上是 shell编程之十一:for循环语句应用实践 的全部内容, 来源链接: utcz.com/z/515997.html

回到顶部