for循环 while循环 break跳出循环 continue结束本次循环 exit退出整

一、for循环

需求:计算1-100所有数字的和
[[email protected] shell]# vi for1.sh
#!/bin/bash
for i in seq 1 100
do
echo $i //先把100个数字打印出来
done
[[email protected] shell]# sh for1.sh //执行脚本打印出100个数字

继续修改脚本:
[[email protected] shell]# vi for1.sh
#!/bin/bash
sum=0
for i in seq 1 100
do
sum=$[$sum+$i]
done
echo $sum
[[email protected] shell]# sh -x for1.sh //执行脚本,查看执行过程

继续完善脚本:
[[email protected] shell]# vi for1.sh
#!/bin/bash
sum=0
for i in seq 1 100
do
echo "$sum + $i"
sum=$[$sum+$i]
echo $sum
done
echo $sum
[[email protected] shell]# sh for1.sh

[[email protected] shell]# vi for2.sh
#!/bin/bash
cd /etc/
for a in i ls /etc/
do
if [ -d $a ]
then
echo $a
ls $a
fi
done
[[email protected] shell]# sh -x for2.sh //执行脚本查看详细执行过程

[[email protected] shell]# mkdir aming //创建一个aming目录
[[email protected] shell]# cd aming/
[[email protected] aming]# ls
[[email protected] aming]# touch 1 2 //创建1和2文件
[[email protected] aming]# touch 3\ 4.txt //创建一个3脱义 4.txt文件
[[email protected] aming]# ls -l
total 0
-rw-r--r-- 1 root root 0 Jul 15 20:40 1
-rw-r--r-- 1 root root 0 Jul 15 20:40 2
-rw-r--r-- 1 root root 0 Jul 15 20:41 3 4.txt //可以看到这是一个文件
[[email protected] aming]# for i in ls ./; do echo $i;done
1
2
3
4.txt
//for循环使用这种命令的形式的时候,空格或者回车都作为一个分隔符

二、while循环

语法 while 条件;do...;done
案例1:
需求:每隔半分钟检查下系统负载,当系统负载大于10的时候就发一封邮件
[[email protected] aming]# vim while1.sh
#!/bin/bash
while true //ture和冒号都是真的意思,即死循环
do
load=w|head -1|awk -F ‘load average: ‘ ‘{print $2}‘|cut -d. -f1
if [ $load -gt 10 ]
then
/usr/local/sbin/mail.py [email protected] "load high" "$load"
fi
sleep 30
done
[[email protected] aming]# sh -x while1.sh
为了不让脚本在执行过程中终止,可以进入一个screen,把进程丢到后台去运行
screen命令详细使用方法参考网址:http://man.linuxde.net/screen

我们可以把脚本中的内容拆分开执行下
[[email protected] aming]# w //使用w命令可以查看系统负载
21:03:12 up 22:27, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM [email protected] IDLE JCPU PCPU WHAT
root pts/1 192.168.238.1 11:43 0.00s 0.49s 0.01s w
[[email protected] aming]# uptime
21:03:16 up 22:27, 1 user, load average: 0.00, 0.01, 0.05
[[email protected] aming]# uptime|awk -F ‘load average: ‘ ‘{print $2}‘
0.00, 0.01, 0.05
[[email protected] aming]# uptime|awk -F ‘load average:‘ ‘{print $2}‘|cut -d . -f1 //看到0前面有空格
0
让0前面没有空格的两个方法:
方法一:
[[email protected] aming]# uptime|awk -F ‘load average: ‘ ‘{print $2}‘|cut -d . -f1 //‘’前面加个空格
0
方法二:
[[email protected] aming]# uptime|awk -F ‘load average:‘ ‘{print $2}‘|cut -d . -f1|sed ‘s/ //‘ //加sed
0

while循环案例2

死循环需求:
在循环过程当中,需要人为的交互,输入一个数字,可定要检测数字是不是自己想要的东西
[[email protected] aming]# vim while2.sh
#!/bin/bash
while :
do
read -p "Please input a number: " n
if [ -z "$n" ]
then
echo "you need input sth."
continue //continue表示继续执行上面的do,不执行下面的内容
fi //如果输入的有东西,就不执行上面两行命令,直接执行下面的命令
n1=echo $n|sed ‘s/[0-9]//g‘
if [ -n "$n1" ] //-n等同于! -z
then
echo "you just only input numbers."
continue //继续上面的循环
fi
break //break就是退出这个脚本的循环,退出来之后直接echo $n
done
echo $n

三、break跳出循环

[[email protected] aming]# vim break.sh
#!/bin/bash
for i in seq 1 5
do
echo $i
if [ $i -eq 3 ] //这里也可以写成if [ $i == 3 ]
then
break
fi
echo $i
done
echo aaaaaaa
[[email protected] aming]# sh -x break.sh //-x查看详细执行过程
++ seq 1 5

  • for i in ‘seq 1 5
  • echo 1
    1
  • ‘[‘ 1 -eq 3 ‘]‘
  • echo 1
    1
  • for i in ‘seq 1 5
  • echo 2
    2
  • ‘[‘ 2 -eq 3 ‘]‘
  • echo 2
    2
  • for i in ‘seq 1 5
  • echo 3
    3
  • ‘[‘ 3 -eq 3 ‘]‘
  • break
  • echo aaaaaaa
    aaaaaaa
    [[email protected] aming]# sh break.sh
    1
    1
    2
    2
    3
    aaaaaaa

四、continue结束本次循环

直接忽略continue之下的代码,直接进行下一次循环
[[email protected] aming]# cp break.sh continue.sh
[[email protected] aming]# vim continue.sh
#!/bin/bash
for i in seq 1 5
do
echo $i
if [ $i -eq 3 ]
then
continue
fi
echo $i
done
echo aaaaaaa
[[email protected] aming]# sh -x continue.sh //-x查看详细执行过程
++ seq 1 5

  • for i in ‘seq 1 5
  • echo 1
    1
  • ‘[‘ 1 -eq 3 ‘]‘
  • echo 1
    1
  • for i in ‘seq 1 5
  • echo 2
    2
  • ‘[‘ 2 -eq 3 ‘]‘
  • echo 2
    2
  • for i in ‘seq 1 5
  • echo 3
    3
  • ‘[‘ 3 -eq 3 ‘]‘
  • continue
  • for i in ‘seq 1 5
  • echo 4
    4
  • ‘[‘ 4 -eq 3 ‘]‘
  • echo 4
    4
  • for i in ‘seq 1 5
  • echo 5
    5
  • ‘[‘ 5 -eq 3 ‘]‘
  • echo 5
    5
  • echo aaaaaaa
    aaaaaaa

五、exit退出整个脚本

exit是直接退出整个脚本
[[email protected] aming]# cp continue.sh exit.sh
[[email protected] aming]# vi exit.sh
#!/bin/bash
for i in seq 1 5
do
echo $i
if [ $i -eq 3 ]
then
exit //exit后面也可以给它定义一个数字,执行完脚本输入echo $?查看数字是否是自定义的
fi
echo $i
done
echo aaaaaaa
[[email protected] aming]# sh exit.sh
1
1
2
2
3

原文地址:http://blog.51cto.com/13669226/2143909

时间: 2024-08-15 01:58:24

for循环 while循环 break跳出循环 continue结束本次循环 exit退出整的相关文章

for循环while循环break跳出循环continue结束本次循环exit退出脚本

20.10 for循环1到100相加的值执行结果 打印出1-100的数字 if [ -d $a ]thenls -d $afi它相当于 [ -d $a ] && ls $a 上图创建的3空格4.txt是一个文件,查在for语句循环的时候将它拆分成3与4.txt两个文件了,说明for循环是以空格作为分隔符的,这个问题要注意20.11 20.12 while循环需求每隔半分钟检查一下系统的负载,当负载大于10的时候就发一封邮件,隔30 秒执行一次这是一个死循环脚本30秒执行一次这个脚本是让用户

for循环 while循环 break跳出循环 continue结束本次循环 exit退出整个脚本

原文地址:https://www.cnblogs.com/xiaobo-Linux/p/8920368.html

for与while循环、break跳出循环、continue结束本次循环、exit退出脚本

for循环 while循环 break跳出循环 continue结束本次循环 exit退出脚本 原文地址:http://blog.51cto.com/13515599/2106958

shell脚本 for循环、break跳出循环、continue结束本次循环

20.10 for循环 语法:for 变量名 in 条件; do ...; done ;案例1 [[email protected] shell]# cat for.sh #!/bin/bash sum=0 for i in `seq 1 100` do sum=$[$sum+$i] done echo $sum #输出的结果 [[email protected] shell]# sh for.sh 5050 文件列表循环 [[email protected] shell]# cat for2.

for、while循环、break跳出循环、continue结束本次循环、exit退出脚本

for 循环 当变量值在列表里,for循环即执行一次所有命令,使用变量名获取列表中的当前取值.命令可为任何有效的shell命令和语句. 语法:for 变量名 in 条件: do...;done 案例1 #!/bin/bashsum=0 // 给变量sum赋值for i in seq 1 100 // 给i赋值,从1到100dosum=$[ $sum + $i ]// 累加doneecho $sum// 输出结果为1到100的和 案例2 #!/bin/bashcd /etc/ // 切换到/etc

Shell脚本(for循环,while循环,break跳出循环,continue结束本次循环)

for循环 语法:for 变量名 in 条件 : do done: 案例一: 计算1-100所有数字的和. 脚本: #!/bin/bash sum=0 for i in `seq 1 100` do sum=$[$sum+$i] done echo $sum 结果: [[email protected] ~]# sh 1-100.sh 5050 案例二: 列出/etc/sysconfig下所有子目录,并且使用ls -d命令查看. 脚本: #/bin/bash cd /etc/sysconfig

六十九、for循环、while循环、break跳出循环、continue结束本次循环、exit退出整

六十九.for循环.while循环.break跳出循环.continue结束本次循环.exit退出整个脚本 一.for循环 语法:for 变量名 in 条件; do -; done 案例1 # vim for1.sh #!/bin/bash sum=0 for i in `seq 1 100` do sum=$[$sum+$i]     //核心语句 echo $i done echo $sum //最后再echo $sum,不能在for循环里echo,不然每次的sum都打印出来了.让它每次都打

20.10 for循环 20.11/20.12 while循环 20.13 break跳出循环 20.14 continue结束本次循环 20.15 exit退出整个脚本

20.10 for循环 ?语法:for 变量名 in 条件; do -; done ? 案例1 1+2+3..+100的和 #!/bin/bash sum=0 for i in `seq 1 100` // seq 1到100个数字 do sum=$[$sum+$i] echo $i done echo $sum sum 第一次作为变量的时候,是0:当进入for循环里面的时候,每运算一次,sum变量就会改变一次,直至$i 结束:最后输出结果 $sum ? 案例2 文件列表循环 #!/bin/ba

for循环,while循环,break跳出循环,continue结束本次循环,exit直接退出脚本

for循环 语法:for 变量名 in 条件; do -; done 案列1,算出1到10的数字相加等于多少并打印出过程 [[email protected] shell]# cat for1.sh #!/bin/bash sum=0 for i in `seq 1 10` do sum=$[$sum+$i] echo "$sum + $i" done echo $sum [[email protected] shell]# sh -x for1.sh + sum=0 ++ seq 1