美文网首页
流程控制_for循环与select

流程控制_for循环与select

作者: 慕知 | 来源:发表于2020-12-28 15:19 被阅读0次

一,语法

1,shell风格的for循环

fou循环 又叫取值循环
语法:
for x in 参数值1 参数值2 参数值3
do
...
done

例1):
[root@m01~]# vim /script/for1.sh
#!/bin/bash
for i in 111 222 "abx"
do
    echo "hello"
done

执行:
[root@m01~]# chmod +x /script/for1.sh
[root@m01~]# /script/for1.sh
hello
hello
hello


例2):加上了参数
[root@m01~]# vim /script/for1.sh
#!/bin/bash
for i in 111 222 "abx"
do
    echo "hello $i" 
done


[root@m01~]# /script/for1.sh
hello 111
hello 222
hello abx



例3):
[root@m01~]# vim /script/for1.sh
#!/bin/bash
for i in `ls /root`
do
    echo "hello $i"
done



[root@m01~]# /script/for1.sh
hello 2
hello 3
hello 4
hello 8
hello ab



例4):
[root@m01~]# vim /script/for1.sh
#!/bin/bash
for i in {1..4}
do
    echo "hello $i"
done
echo =====
for i in {a,c,z}
do
    echo "hello $i"
done




[root@m01~]# /script/for1.sh
hello 1
hello 2
hello 3
hello 4
=====
hello a
hello c
hello z

2,C风格的for循环

[root@m01~]# vim /script/for2.sh
#!/bin/bash
for ((i=1;i<4;i++))
do
    echo $i
done



[root@m01~]# chmod +x /script/for2.sh
[root@m01~]# /script/for2.sh
1
2
3


##  i=1是初始值,i<4是条件,i++是语法无实际意义

3,continue和break

1) continue
[root@m01~]# vim /script/for3.sh
#!/bin/bash
for i in {1..5}
do
    if [ $i -eq 3 ];then
        continue
    fi
    echo $i
done



[root@m01~]# chmod +x /script/for3.sh
[root@m01~]# /script/for3.sh
1
2
4
5


2) break
[root@m01~]# vim /script/for3.sh
#!/bin/bash
for i in {1..5}
do
    if [ $i -eq 3 ];then
        break
    fi
    echo $i
done



[root@m01~]# /script/for3.sh
1
2

二,案例

1, ping 网通

[root@m01~]# vim /script/for4.sh
#!/bin/bash
for i in {1..100}
do
    (ping -c 10.0.0.$i &> /dev/null
    if [ $? -eq 0 ];then
        echo "10.0.0.$i is up"
    else
        echo "10.0.0.$i is down"
    fi) &
done


[root@m01~]# 10.0.0.7 is down
10.0.0.10 is down
10.0.0.5 is down
10.0.0.6 is down
10.0.0.1 is down
10.0.0.2 is down
10.0.0.3 is down
10.0.0.8 is down
10.0.0.9 is down
10.0.0.4 is down

2,计算文件夹里各类文件数量

[root@m01~]# vim /script/for5.sh
#!/bin/bash
dir="/etc"
file=0
link=0
directory=0
others=0
for i in `ls $dir`
do
    if [ -f "$dir/$i" ];then
        let file++
    elif [ -L "$dir/$i" ];then
        let link++
    elif [ -d "$dir/$i" ];then
        let directory++
    else
        let others++
    fi
done

echo "普通文件数量为:$file"
echo "软连接文件数量为:$link"
echo "目录文件数量为:$directory"
echo "其他文件数量为:$others"


[root@m01~]# /script/for5.sh
普通文件数量为:109
软连接文件数量为:8
目录文件数量为:83
其他文件数量为:0


##注意,字符一定要加上双引号

三,select

用于交互式环境
1)
[root@m01~]# vim /script/select.sh
#!/bin/bash
PS3="输入编号:"
select cho in {"退出","取款","转账","查询余额"}
do
    case $cho in
    "退出")
        break
        ;;
    "取款")
        echo "取款中"
        ;;
    "转账")
        echo "转账中"
        ;;
    "查询余额")
        echo "查询余额中"
        ;;
    esac
done



[root@m01~]# /script/select.sh
1) 退出
2) 取款
3) 转账
4) 查询余额
输入编号:2
取款中
输入编号:1






2)
[root@m01~]# vim /script/select.sh
#!/bin/bash
PS3="输入编号:"
select cho in
do
    case $cho in
    "退出")
        break
        ;;
    "取款")
        echo "取款中"
        ;;
    "转账")
        echo "转账中"
        ;;
    "查询余额")
        echo "查询余额中"
        ;;
    esac
done



[root@m01~]# /script/select.sh 退出 取款 转账 查询余额
1) 退出
2) 取款
3) 转账
4) 查询余额
输入编号:3
转账中
输入编号:1

相关文章

  • 流程控制_for循环与select

    一,语法 1,shell风格的for循环 2,C风格的for循环 3,continue和break 二,案例 1,...

  • 2019-07-22

    学习循环控制、流程控制。

  • Java知识之流程控制

    Java流程控制框架图 流程控制 一. 循环结构二. 分支结构三. 顺序结构 循环结构 for循环,for-eac...

  • 控制流程

    控制流程 本节包含内容: For循环 While循环 条件语句 控制转移语句 For循环 for循环用来按照指定的...

  • 控制语句执行流程

    Python中流程控制语句 选择结构if 循环结构for for与range() 用while循环 增量赋值运算符...

  • day02-01-for

    流程控制之跳出for循环

  • Shell 逻辑控制

    逻辑控制 条件 if 分支 case、select 循环 for、while、until break 和 cont...

  • Swift5.1控制流

    5.控制流 流程控制结构1.while与repeat while:区别在判断循环条件之前,先执⾏一次循环的代码块。...

  • shell流程控制-for循环语句

    shell流程控制-for循环语句 for循环介绍 for语法 循环控制 脚本在执行任务的时候,总会遇到需要循环执...

  • Python基础重构-1.3流程控制

    流程控制语句 流程控制语句用来实现对程序流程的选择、循环和返回等进行控制,Python中主要的流程控制包括if(判...

网友评论

      本文标题:流程控制_for循环与select

      本文链接:https://www.haomeiwen.com/subject/fhhonktx.html