十一、for迴圈語句應用實踐 (一)、for迴圈語法 (二)範例1 用for迴圈豎向列印1、2、3、4、5共5個數字。 (三)範例2: 通過開發腳本實現僅設置sshd rsyslog crond network sysstat 服務 開機自啟動。 (四)範例3: 計算從1加到100之和。 (五)案例 ...
十一、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