【2018.07.13学习笔记】【linux高级知识 20.10-20.15】

20.10 for循环

语法格式:bash

for 变量 in 条件(值范围); do 语句 ;done

示例:计算1到10的累加和code

#!/bin/bash
sum=0
for i in 'seq 1 10'    //seq 1 10 为结果集,是以空格号或回车为间隔遍历值。
do
    sum=$[$sum+$i]
done
   echo $sum

示例:针对文件的循环,遍历每一个ls的结果值判断是否为目录,而后ls该目录。input

#!/bin/bash
cd /etc/
for a in 'ls /etc/'    //a是ls /etc/ 结果里的值每一个遍历,是以空格为间隔的
do
   [-d $a] && ls $a
done

示例:/lgs/ 目录下 touch 1 2 touch 3\ 4.txt (文件名是3 4.txt,脱义字符后是空格)it

for i in 'ls ./'
do
   echo $i
done

##执行结果是
1
2
3
4.txt    //会把文件3 4.txt 当成两个文件 3和 4.txt。验证出是以空格为间隔遍历条件里的值

20.11/20.12 while循环

语法:for循环

while 条件 ;do 语句; done

示例:awk

#!/bin/bash   //为了让脚本不意外停止,用screen中运行脚本
while :   //while true或者while 1的意思,表示永久循环
do
   load='w|head -1|awk -F 'load average: ' '{print $2}' |cut -d. -f1 '
   if[ $load -gt 10 ]
   then
      /usr/local/mail.py xxx@xxx "load high"  "$load"
   fi
   sleep 30 //30秒检查一次
done

示例:变量

#!/bin/bash
while :
do
   read -p "please input a number: " n
   if[ -z $n ]
   then
     echo "你须要输入东西"
	 continue   //继续执行下一次的循环
   fi
   n1='echo $n|sed 's/[0-9]//g''
   if [ ! -z $n1 ]
   then
     echo "你只能输入数字"
	 continue
   fi
   break  //跳出循环体
done
echo $n

20.13 break跳出循环

#!/bin/bash
for i in 'seq 1 10'
do
  echo $i
  if[ $i -eq 3 ]
  then
    break  //跳出全部循环
  fi
  echo $i  //i=3时,这句不执行了,由于上面跳出for循环体了
done
echo aaaaaa

##结果
1
1
2
2
3
aaaaaa

20.14 continue结束本次循环

忽略本次循环continue之下的语句,直接进入下一次循环sed

#!/bin/bash
for i in 'seq 1 10'
do
  echo $i
  if [ $i==3 ]
  then
    continue  //直接进入i=4的循环
  fi
 echo $i
done
echo$i

##结果
1
1
2
2
3
4
4
5
5
5

20.15 exit退出整个脚本

#!/bin/bash
for i in 'seq 1 5'
do
  echo $i
  if [ $i==3 ]
  then
      exit   //i=3,直接不执行之后全部的代码,退出脚本
  fi
  echo $i
done
echo aaaaaa   //i=3不执行该语句

##结果
1
1
2
2
3
相关文章
相关标签/搜索