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

2020-04-29 16:01:12来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

shell编程之十一: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


原文链接:https://www.cnblogs.com/cuiyongchao007/p/12804944.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:shell脚本之九:case结构条件句应用实践

下一篇:shell脚本之十二:循环控制及状态返回值应用实践