shell(2) if特殊、 case判断、for循环、while循环、break、continue

 一、 if特殊用法

1.if [ -z "$a"]

#!/bin/bash

if [ ! -f /tmp/iftest ]

then

echo "The derectory is not exist"

exit

fi

n=`wc -l /tmp/iftest`

if [ -z "$n" ]

then

echo error

else

echo "yes"

fi

2. if [ -n "$a" ]

判断值要加双引号且 !-z ==-n

二、case判断

测试脚本:(执行脚本的时候输入数字判断分数是否及格)

#!/bin/bash

read -p "Please input a number: " n

if [ -z "$n" ]

then

echo "Please input a number."

exit 1

fi

n1=`echo $n|sed 's/[0-9]//g'`

if [ -n "$n1" ]

then

echo "Please input a number."

exit 1

fi

if [ $n -lt 60 ] && [ $n -ge 0 ]

then

tag=1

elif [ $n -ge 60 ] && [ $n -lt 80 ]

then

tag=2

elif [ $n -ge 80 ]  && [ $n -lt 90 ]

then

tag=3

elif [ $n -ge 90 ] && [ $n -le 100 ]

then

tag=4

else

tag=0

fi

case $tag in

1)

echo "分数不合格"

;;

2)

echo "分数及格"

;;

3)

echo "分数良好"

;;

4)

echo "分数优秀"

;;

*)

echo "输入的数值应该是在 0-100."

;;

esac

三、for 循环

范围的符号用 ``

`seq 范围`

1.测试脚本:(1加到100)内容:

结果:

2.遍历/etc/下的目录:

内容:

结果:

for i in `seq 1 3`  == for i  1 2 3

for循环会以空格或回车作为分隔符

例如:/tmp/下有三个文件 1.txt、2.txt和3 4.txt(3 4.txt是一个文件,3和4之间有空格)

当在命令行中执行:for i in `ls /tmp/` do echo $i  ;done

结果则会出现四个文件这样的显示1.txt、 2.txt、3和4.txt(这是3 4.txt是一个文件却因为空格拆分成两个)

四、while循环

1.格式:

while 条件 ;do ...;done

如 (1)while :  (死循环)  do ;done

(2)while true == while 1 ;do...;done

2.案例当系统负载大于10时,发送一封邮件(每分钟发送一次)

#!/bin/bash

while :

do

load=`w|head -1|awk -F 'load average: ' '{print $2}'|cut -d. -f1`

if [ $load -gt 10 ]          //负载值比对

then

top|mail -s "load is high: $load" [email protected]

(或者:/usr/lib/zabbix/alertscripts/mail.py [email protected] "load is high: $load")

fi

sleep 30     //添加时间间断,没30秒查一次

done

( load=`w|head -1|awk -F 'load average: ' '{print $2}'|cut -d. -f1`

过滤所要所要字符。|sed 's/ //' 把过滤字符前的空格去除

3.案例:判断输入的内容是否为数字

#!/bin/bash

while :

do

read -p "Please input a number: " n

if [ -z "$n" ]

then

echo "you need input sth."

continue

fi

n1=`echo $n|sed 's/[0-9]//g'`

if [ -n "$n1" ]

then

echo "you just only input numbers."

continue

fi

break

done

echo $n

首先要判断输入的内容是否为空,如果为空则结束本次循环,继续提醒要输入内容

然后判断输入内容,是否为数字还是英文字符串,直到输入的内容是数字才会结束(跳出)整个流程

break跳出循环

当在脚本中的for或者while的循环中都是可以的。使用break,当条件

满足时就会直接跳出本层的循环(就是跳出使用了break这层的循环)

执行结果

在使用if作判断时,要在条件范围在[ ]中的左右都要空一格,否则会有

语法错误。

continue结束本次循环

!!忽略continue之下的代码,直接进行下一次循环

continue 是仅仅的结束满足条件的那一次过程,之后的命令也是会执行的

执行结果:

exit退出整个脚本

当整个流程运行命令,遇到exit时,直接退出脚本。

执行结果:

原文地址:http://blog.51cto.com/13589255/2121739

时间: 2024-10-02 04:23:44

shell(2) if特殊、 case判断、for循环、while循环、break、continue的相关文章

linux 循环结构中的 break continue exit return区别

1 概述 在脚本的循环中,需要用到break,continue,exit.来控制循环.利用return来获取函数的返回值.本文将对这四个命令的使用做介绍 break [N]:提前结束第N层循环,最内层为第1层 continue [N]:提前结束第N层的本轮循环,而直接进入下一轮判断:最内层为第1层 exit 命令终止脚本 2  break continue exit   对比 2.1 break 和continue 测试 假设一个循环体内,总共嵌套了3层循环,总循环体N为3,break 和con

MATLAB循环结构:break+continue+嵌套

break语句:终止当前循环,继续执行循环语句的下一语句: continue语句:跳过循环体的后面语句,开始下一个循环: 例:求[100,200]之间第一个能被21整除的整数 for n=100:200 %循环语句 if rem(n,21)~=0 %选择语句 continue end break end n 程序输出结果为n= 105 循环的嵌套 若一个 数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6是完数.求[1,500]之间的全部完数. for m=1:500 s=0;

循环(for,while,until)与循环控制符(break,continue)

一.for循环 第一种风格   for ((;;;))(类似C语言风格) do command done 例子:for ((i=0;i<10;i++)) do echo $i done 第二种风格   for variable in {list} do command done 例子:for  i  in {1..10..2}   //打印1到10的奇数. do echo $i done a=(1 2 3 9 8 60 625)     //定义数组a for i in ${a[*]}    /

python if 判断 while 循环 for 循环

#判断什么是判断:如果某些条件满足,才能做某件事情:条件不满足时,则不能做,这就是所谓的判断.不仅生活中有,在软件开发中"判断"功能也经常会用到 if语句是用来进行判断的,其使用格式如下: if 要判断的条件: 条件成立时,要做的事情 #比较,运算符== 检查两个操作数的值是否相等,如果是则条件变为真. 如a=3,b=3,则(a == b) 为 True!= 检查两个操作数的值是否相等,如果值不相等,则条件变为真. 如a=1,b=3,则(a != b) 为 True'> 检查左操

04、Java基础语法(循环嵌套、break、continue、方法、方法的重载、数组动态初始化)

复习: 流程控制语句 - 顺序结构 - 分支结构 - if-else - switch - 循环结构 - for - while - do...while 1.循环嵌套 2.控制循环的语句 3.方法 4.方法的重载 5.数组的动态初始化 1.循环嵌套 ctrl + alt + L 格式化代码 "\n"换行符 "\t"制表符 九九乘法表 for (int i = 1; i < 10; i++) { for (int j = 1; j <= i; j++)

case判断 循环 函数

shell中的case判断格式: case 变量名 invalue1)command;;value2)command;;*)commond;;esac 在case程序中,可以在条件中使用|,表示或的意思, 比如 2|3)command;;当变量为2或者3时,执行该部分命令.for循环 语法结构: for 变量名 in 条件; do - done * #!/bin/bash * sum=0 * for i in `seq 1 100` * do * sum=$[$sum+$i] * echo $i

Shell脚本(脚本中的逻辑判断,逻辑判断表达式,判断文件和目录属性,case判断)

逻辑判断表达式: -gt = 大于    -lt = 小于    -ge = 大于等于   -le = 小于等于   -eq = 恒等于  -ne = 不等于 这里要注意空格 也可以用&&和||结合多个条件 例如1: [[email protected] shell]# cat if4.sh #/bin/bash a=5 if [ $a -gt 4 ] && [ $a -lt 6 ] then echo "4<a<6" else echo n

(三)Linux Shell编程——Shell常用命令(输出、判断、循环、函数、包含)

3. 常用命令 3.1 输出 3.1.1 echo命令 echo是Shell的一个内部指令,用于在屏幕上打印出指定的字符串.命令格式: echo arg name="coding" echo '$name\"'+" ${name}" #原样输出 $name\"+ coding echo `date` #当前日期 3.1.2 printf命令 printf 命令用于格式化输出, 是echo命令的增强版.它是C语言printf()库函数的一个有限的变

理论+实操:shell之case语句for/while/until循环语句、函数、数组-满满的干货

前言: 单引号表示纯符号 用双引号表字符串 case多分支语句 循环语句 for循环语句 while循环语句 until循环语句 shell函数 shell数组 一 : case语句的结构 1.1 case结构 多分支表现形式:if语句,case语句 case 语句可以使用正则表达式,正则表达式后面会去阐述 针对变量的不同取值,分别执行不同的命令程序 case 中::表示一句话的结束 如果匹配某一个固定值,大多数用caes,其适用于某一个固定值 如果匹配某一个区间范围,大多数用if else 语