流程控制之for循环 流程控制之select语句

流程控制之for循环

语法

#===========》Shell风格语法
for 变量名 [ in 取值列表 ]
do
	循环体
done

#===========》C语言风格语法
for ((初值;条件;步长))
do	
	循环体
done

continue:默认退出本次循环

break:默认退出本层循环

for循环案例

判断/dev目录下所有文件的类型

#!/bin/bash

for i in `ls /dev`
do
        if [[ -d /dev/$i ]];then
                echo "$i是字典类型"
        elif [[ -b /dev/$i ]];then
                echo "$i块设备类型"
        elif [[ -f /dev/$i ]];then
                echo "$i是文件类型"
        elif [[ -c /dev/$i ]];then
                echo "$i是字符设备"
        else
                echo "其他"
        fi
done

输入账号信息,输入个数,批量创建用户user01、user02、user03…,密码默认1234

[root@m01 ~]# seq -w 3
1
2
3
#!/bin/bash

read -p "请输入创建用户的信息:" name
read -p "请输入创建创建的用户的数量:" count

for i in `seq -w $count`
do
        useradd $name$i &> /dev/null
        echo 123  | passwd --stdin $name$i &> /dev/null
        id $name$i &> /dev/null
        if [ $? -eq 0 ];then
                echo "$name$i 创建成功"
        else
                echo "$name$i 创建失败"
        fi
done

流程控制之select语句

语法

select表达式是bash的一种扩展应用,擅长于交互式场合。用户可以从一组不同的值中进行选择

PS3='choose one: ' 		# select默认使用PS3变量的值做提示符
select var in ...		
do
	...
	break			# 跳出select,否则是死循环
done

select语句案例

了解语法使用

#!/bin/bash

select a in {A,B,C,D}
do
        echo A
        echo B
        echo C
        echo D
        break
done

==================调用==================================================================================================
[root@m01 ~]# bash a.sh
1) A
2) B
3) C
4) D
#? 3			不加PS3,select默认的提示符为#?
A
B
C
D

若省略 in list 则select会把 $@ 当做列表项

#!/bin/bash

PS3="输入你的选择:"

select a
do
        echo 
        echo "你选择的是$a"
        echo 
        break
done

==================调用==================================================================================================
[root@m01 ~]# bash A.sh 香蕉 苹果 橘子			# 省略 in list 则select会把 $@ 当做列表项
1) 香蕉
2) 苹果
3) 橘子
输入你的选择:2

你选择的是苹果

通常情况下,我们会把select语句和case语句一起使用

#!/bin/bash

PS3="输入选项:"

select a in {A..D}
do
        case $a in
        A)
                echo "你的选择是A"
                ;;
        B)
                echo "你的选择是B"
                ;;
        C)
                echo "你的选择是C"
                ;;
        D)
                echo "你的选择是D"
                ;;
        *)
                echo "你的选择是其他"
        esac
        break
done

==================调用==================================================================================================
[root@m01 ~]# bash b.sh 
1) A
2) B
3) C
4) D
输入选项:1			# 注意输入的是选项!!!
你的选择是A

利用select语句+case语句编写一个简易版的跳板机

# 使用该脚本,需要提前配置好公钥与私钥
#!/bin/bash

PS3="输入你想要连接的主机:"


select a in Web01 Web02 Web03
do
        case $a in
        Web01)
                ssh 192.168.15.7
                ;;
        Web02)
                ssh 192.168.15.8
                ;;
        Web03)
                ssh 192.168.15.9
                ;;
        esac
        break
done
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值