欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

shell的while循环&函数

程序员文章站 2024-03-23 22:01:52
...

while循环

【while】
#!/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]
        fi
        sleep 30
done

1、while :  【while后带冒号表示始终为真】
2、w|head -1 【取系统性能值得第一行】
3、awk -F 'load average: ' '{print $2}'|cut -d. -f1
【以load average:   作为分隔符,输出第二段值】
【cut -d. -f1 表示以点.  作为分隔符,取-f1第一段值】

cut用法:cut -d "分隔符" -f2 文件
-c   以字符为单位进行分割
-d   分隔符,后面用引号引住分隔符
-f   与-d 连用,指定显示那个区域


#!/bin/bash
#循环判断输入的是否为纯数字,直到输入的为纯数字,继续判断奇偶,若输入为空提示继续输入
while true
do
        read -p "请输入一个数字:" num
        if [ ! -n "$num" ];then
             echo "输入值为空"
             continue
       fi           
       a=`echo $num|grep -Ec [^0-9]`
        if [ "$a" -eq 1 ];then
              echo "输入的为非纯数字,请输入纯数字"
          continue
              #read -p "请输入一个数字:" num
         fi
         if [ "$a" -eq 0 ];then
               b=$(($num%2))
                      if [ "$b" -eq 0 ];then
                            echo "$num 是偶数"
                        else
                            echo "$num 是奇数"
                      fi
          exit
          fi
done


【continue】关键字:表示循环体下面的语句不再执行,但是循环还是要的,从头再开始执行一遍循环
【break】关键字:退出本次的循环体,循环体外的仍会执行到
【exit】关键字:不仅退出循环体,而且还退出本次执行的脚本

【函数】

定义函数sum
格式1:
sum(){ 
   command 
}   
sum parm1 parm2...【后面可接参数1,参数2,...】
格式2:
function sum(){
    command
}

举例1:
#!/bin/bash
sum(){
   s=$[$1+$2]
   echo $s
}
sum $1 $2

举例2:
获取网卡的IP地址
#!/bin/bash
ip(){
  ifconfig | grep -A1 "$1"|tail -1|awk '{print $2}'
}
read -p "请输入你的网卡名" name
myip=`ip $name`
echo "$name address is $myip"

上一篇: Java的常用输入输出语句

下一篇: