shell(三)——循环结构和函数

循环结构

1)  循环操作是什么? 
2) 循环开始的条件
3)  循环终止的条件

for, while, util

for循环结构

for循环: 明确知道循环的次数

for 变量名称 in 变量取值; do
    statement
    statement
done


for 变量名称 in 变量取值 
do
    statement
    statement
done

变量取值 
    数字
        10 20 30
        花括号展开   {1..100}
        [root@shell shell]# seq 10
        [root@shell shell]# seq 2 10
        [root@shell shell]# seq 1 2 10

编写脚本, 计算1---100的和

#!/bin/bash
sum=0
for i in {1..100};do
  let sum=$sum+$i
done
echo $sum

编写脚本, 计算1---100所有奇数的和

#!/bin/bash

sum=0

for i in `seq 100`;do
 let ys=$i%2
 if [ $ys -ne 0 ];then
  let sum=$sum+$i
 fi
done

echo $sum

中断循环语句:

break               中断整个循环
continue            中断本次循环

break
中断的例子

# !/bin/bash

sum=0

for i in `seq 100`;do
    let sum=$sum+$i
    if [ $sum -ge 3000 ];then
        echo "$i,$sum"
        break
    fi
done

运行结果

student@student-VirtualBox:/tmp$ ./t1.sh 
77,3003

while循环

用法1:
while CONDITION; do
    statement
    statement
    ....
    change_condition_statement
done

编写脚本,计算1--100的和

# !/bin/bash

sum=0
i=1

while [ $i -le 100 ];do
    sum=$((sum+i))
    let i++
done
echo $sum

util循环:

util CONDITION; do
    statement
    statement
    ....
done

条件为假循环开始,条件为真循环结束 

函数

定义函数

方法1:

函数名称() {    
}

方法2:
function 函数名称{
}

编写脚本,提供给用户功能菜单,包括创建目录及删除目录,根据用户的需求分别实现创建、删除目录功能,创建、删除目录的功能使用函数实现

#!/bin/bash

createdir() {
   if [ -d $1 ]; then
    echo "目录$1已经存在"
   else
        mkdir -p $1
        echo "目录$1创建完成."
   fi
}

removedir() {

   read -p "输入目录名称:" dir
   if [ -d $dir ]; then
      rm -rf $dir
      echo "目录$dir已经删除"
   else
      echo "目录$dir不存在"
   fi
}

showmenu() {
cat << eof
==========目录基本管理============
1   创建目录
2   删除目录
q   退出  
eof
}

while true; do
    showmenu
    echo
    read -p "请输入你的选择:" choice

    case $choice in
      1)
        read -p "请输入目录名称:" dir
    createdir $dir
    ;;
      2)
    removedir
    ;;
      q)
    exit 0
    ;;
    esac
done
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容