for循环语法

 

        工作中总是有很多工作需要重复性来完成,比如每天都需要执行一次备份、每天都需要分析一次业务的access.log日志,每分钟都需要监测一次主机的状态等等工作,这些重复性的工作我们一般都是使用脚本来完成,对于不需要频繁执行的任务,可以结合计划任务➕脚本完成,但是系统的计划任务只能精确到分,不能满足更频繁的重复工作。

这个时候我们除了依赖计划任务之外还有很多选择,比如脚本中的循环语句。

循环的优点

  • 节省内存 10M脚本 1M脚本 哪个更剩内存 完成同一个任务
  • 结构更清晰
  • 节省开发时间成本

 

 

一、for语法

1、语法一

每赋一次值,执行一次代码

for variable_name in {list}
     do
          command 
          command
          …
     done
或者
for variable in a b c
     do
         command
         command
     done

 

 

例如:循环输出1-10

 

预备知识:

[root@CentOs shell]# vim ShellTest.sh
[root@CentOs shell]# seq 1 10
1
2
3
4
5
6
7
8
9
10
[root@CentOs shell]# seq 10 -1 1
10
9
8
7
6
5
4
3
2
1
[root@CentOs shell]#

 

 

 

 

[root@CentOs shell]# bash ShellTest.sh
1
2
3
4
5
6
7
8
9
10
[root@CentOs shell]#

 

 

二、语法二:C式的for命令

 

for(( expr1;expr2;expr3 ))
	do
		command
		command
		…
	done
for (( i=1;i<=5;i++))  
	do
		echo $i
	done


expr1:定义变量并赋初值   变量初始值
expr2:决定是否进行循环(条件)  变量的条件
expr3:决定循环变量如何改变,决定循环什么时候退出 自增或自减运算



多变量用法
for ((A=1,B=10;A<10,B>1;A++,B--))

 

 

例如:

 

 

[root@CentOs shell]# bash ShellTest.sh
1
2
3
4
5
6
7
8
9
10

 

再比如,写一个无限循环的

 

sleep 1  每秒输出一次

 

 

 

附:

for赋值的几种方式:

(1)直接赋值

for var 1 2 3 4 5 6

(2)使用命令赋值

for var in `seq 1 9`

(3)赋值可以是一个字符串,输出就是一个一个单词输出了

for var in he is cool

    do

  echo "word:$var"

done

 

 

 

[root@CentOs shell]# bash ShellTest.sh
word: he
word: is
word: cool
[root@CentOs shell]#

 

posted @ 2022-04-02 18:26  屯子里唯一的架构师  阅读(212)  评论(0编辑  收藏  举报