shell case语句及函数

来源:互联网 发布:大麦户源码下载 编辑:程序博客网 时间:2024/05/01 22:22
case 菜单选择打印语法:case var in     var变量    patten 1)   匹配模式1 a|b|c  |和or类似    command...  需要执行的命令    ;;      命令执行完毕    patten 2)    command...    ;;    *)      默认值,没有匹配的模式    command...      ;;esac            代表case语句的结束demo1:当给程序输入start|s时,显示service is running!;stop——>service is stoped;...#!/bin/bash#read -p "请输入参数:" varcase $1 in    start|s)    echo service is running    ;;    stop)    echo service is stoped    ;;    reload)    echo service is reload    ;;    *)    echo xxxxx    ;;esacdemo2:相互嵌套#!/bin/bashread -p "小明,你喜欢我吗?(喜欢|不喜欢|爱你):" lovecase $love in    喜欢)    echo "我也喜欢你"    ;;    不喜欢)    read -p "那你喜欢谁?" who    case $who in        小红)        echo "她是我的闺蜜"        ;;        小彭)        echo "额..拜拜"        ;;        *)        echo "我们不合适"        ;;    esac    ;;    *)    echo "你到底什么意思?"    ;;esacdemo3:维护菜单选择#!/bin/bashecho "*********welcome to uplooking*********"echo "*********选择操作类型*******************"echo "**********1——系统**********************"echo "**********2——程序**********************"echo "**********3——数据库********************"echo "**********0——退出**********************"read -p "请选择操作类型:" choosecase $choose in    1)    echo "你选择的类型是系统维护"    ;;    2)    echo "你选择的是程序"    ;;    3)    echo "*********welcome to uplooking*********"    echo "*********选择操作类型*******************"    echo "**********1——备份**********************"    echo "**********2——数据导入导出****************"    echo "**********0——退出**********************"    read -p "请你输入对数据库的操作:" choose1    case $choose1 in        0)        echo "退出"        ;;        1)        echo "备份数据库"        ;;        2)        echo "导入导出"        ;;        *)        echo "你要干啥?"        ;;    esac    ;;    0)    exit    ;;esac课堂练习:1、输入一个等级(A—E),查看每个等级的成绩;如输入A,则显示"90分~100分";依次类推2、模拟一个2人相亲的场景,交互式输入名字、性别、年龄(年龄放在性别判断后)1>对性别进行判断,如果不输入男或者女,则显示“你是泰国来的码?”如果是男的则对年龄判断:2>男的年龄大于18岁则显示“某某先生,你结婚了码?”;如果对方回答yes或者结了,则显示“那你来着凑什么热闹?”;如果对方回答no或者没结,则再次询问“那你有房有车吗?”;如果既不说结了也不说没结,则显示“你到底有没有结婚??”3>问有房有车吗,对方回答有,则显示“咱们去民政局领证吧,正好今天是七夕!”;如果对放回答没有,则显示“不好意思,我去下洗手间...”;如果即不回答有也不回答没有,则显示“请正面回答我的问题??”4>男的年龄如果小于18岁,则显示“你个小猫孩来着干啥,不好好读书”5>如果是女的,并且年龄大于18岁,则显示“某某女士,您好”;否则显示“某某小姐,您好”函数:语法结构:方法1:function function_name(){    command...}方法2function_name(){command...}return:作用1、用来返回一个值给函数,主函数可以调用该返回值 0256  return 22、用来结束函数demo1:#!/bin/bashfunction hello(){    echo hello    echo $1}world(){    echo hi    echo $1}函数调用:1、直接在终端调用# source fun1.sh [root@node1 shell03]# hello uplookinghellouplooking[root@node1 shell03]# world 888hi8882、写到全局的环境变量文件里vim /etc/profile...function hello(){    echo hello    echo $1}world(){    echo hi    echo $1}3、脚本里调用#!/bin/bashfunction hello(){    echo hello    echo $1}#read -p "请输入参数:" varcase $1 in    start|s)    hello uplooking    echo service is running    ;;    stop)    hello 66666;    echo service is stoped    ;;    reload)    echo service is reload    ;;    *)    hello 7777;echo xxxxx    ;;esacdemo:批量创建3个用户user1~user3;用户的附加组为admin组;密码为123#!/bin/bashg=admingroups(){groupadd $g}users(){    for i in {1..3}    do    useradd -G $g user$i    echo 123|passwd --stdin user$i    done}grep -w admin /etc/group &>/dev/nullif [ $? -ne 0 ];then groups userselse usersfi作业:写脚本自动搭建web服务,要求如下:1、基于域名的虚拟主机(DNS可以用脚本也可以写到hosts文件中即可)2、访问www.myweb.com——>this is myweb test page3、web服务器的ip和主机名交互式的从外部输入,并且如果不输入一致提示输入提示:在脚本中可以先写一个函数,目的是如果不输入相应的内容则一致提示输入4、搭建完后要显示测试是否成功5、根据自己的想法可以是该脚本更丰富预习:sed
0 0