学习笔记-continue-break

bash编制之循环控制
for varName in LIST;do
循环体
done

while CONDITION;do
循环体
done

until CONDITION;do
循环体
done

循环控制:
continue:提前结束本次循环而开始评估下一轮
break[n]:跳出当前循环

练习:求100以内所有偶数之和

declare -i evensum=0
declare -i i=1
while [ $i -le 100 ];do
  if[ [$i%1] -eq 1 ];then
     let i++
     continue
  fi
  let evensum+=$i
  let i++
done

练习:
写一个脚本
1.让用户输入一个块设备,如果设备文件不存在,就提示用户重新输入,知道用户输入正确
2.用户可以输入quit退出

#!/bin/bash
#
while true; do
    read -p "Enter a dev: " devdir
    if [ "$devdir" == "quit" ]; then
      break
    fi

    if [ -b $devdir ]; then
      break
    else
      echo “wrong device file...."
     fi
done

扩展前一题
1,显示用户输入块设备,并提示用户,后续操作会损坏设备上的所有文件,让用户选择是否选择
2.如果用户输入y。则继续后面的操作
3.如果用户输入n ,则显示用户选择了终止,并退出脚本
4.输入任何其他字符,则用户重新选择

#!/bin/bash
#
while true; do
    read -p "Enter a dev: " devdir
    if [ "$devdir" == "quit" ]; then
      break
    fi
    if [ -b "$devdir" ]; then
      echo "$devdir is very good !"
      read -p "Are you sure [y|n]" devoption
      devoption= echo $devoption|tr 'A-Z' 'a-z'
       if [[ "$devoption" == "y" ]]; then
         echo "ni xuanze le yes"
         break
       elif [[ "$devoption" == "n" ]];then
        echo "ni xuanze le no,jiaoben tuichu"
        break
       else
        break
      fi
    else
      echo "wrong device file...."
    fi
done

练习:写一个脚本
1.提示用户输入一个目录路径
2,显示目录下至少包含一个大写字母的文件名

 #!/bin/bash
while truedo
    read -p "Enter a directory: " dirname
    [ "$dirname" == "quit" ] && exit 3
    [ -d "$dirname" ] && break || echo "wrong directory..."
done
 for filename in $dirname/*;do
         if [[ "$fileName" =~ .*[[:upper:]]{1,}.* ]]; then
                echo "$fileName"
        fi
done

练习:写一个脚本
前提:配置好yum源
1、如果本机没有一个可用的yum源,则提示用户,并退出脚本(4);如果此脚本非以root用户执行,则显示仅有root才有权限安装程序包,而后退出(3);
2、提示用户输入一个程序包名称,而后使用yum自动安装之;尽可能不输出yum命令执行中的信息;
如果安装成功,则绿色显示,否则,红色显示失败;
3、如果用户输入的程序包不存在,则显示错误后让用户继续输入;
4、如果用户输入quit,则正常退出(0);
5、正常退出前,显示本地共安装的程序包的个数;

#!/bin/bash
while true;do
if [ $UID -ne 0 ]; then
    echo "`basename $0` must be running as root"
    exit 3
fi
yum repolist &> /dev/null
if  [[ $? -eq 0 ]];then
   while true;do
   read -p "Enter a chengxubao: " baoname
     if [[ "$baoname" == "quit" ]];then
      rpm -qa |wc -l
       exit 0
     fi
   yum list |grep "^$baoname.*" &> /dev/null
     if [[ $? -eq 0 ]];then
      yum install $baoname -y &> /dev/null
        if [[ $? -ne 0 ]];then
         echo "$baoname not ok"
        else
        echo "$baoname is ok!"
          exit 0
        fi
    else 
         continue
    fi
  done 
  else 
     echo "yum is not ok!!"
  exit 4
fi
done

猜你喜欢

转载自blog.csdn.net/weixin_36209467/article/details/82388975