case语句

  • 一、case语句
    • 案例1
    • 案例2
    • 课堂练习1
  • 二、函数
    • 2.1 函数定义
    • 2.2 函数的调用
    • 2.3 应用案例
  • 三、综合案例
  • 四、正则表达式
    • 1. 什么是正则表达式
    • 2. 第一类正则
    • 3. 第二类正则
    • 4. 课堂作业
  • 五、正则总结
  • 六、课后作业

一、case语句

case语句为多选择语句。可以用case语句匹配一个值与一个模式,如果匹配成功,执行相
匹配的命令。

case var in             定义变量;var代表是变量名
pattern 1)              模式1;用 | 分割多个模式,相当于orcommand1            需要执行的语句;;                  两个分号代表命令结束
pattern 2)command2;;
pattern 3)command3;;*)              default,不满足以上模式,默认执行*)下面的语句command4;;
esac                            esac表示case语句结束

案例1

  • 当给程序传入start、stop、reload三个不同参数时分别执行相应命令。
#!/bin/bash
case $1 instart|S)echo "service is running....";;stop|T)echo "service is stoped...";;reload|R)echo "service is restart...";;*)echo "请输入你要的动作";;
esac
  • 脚本提示让用户输入需要管理的服务名,然后提示用户需要对服务做什么操作,如启动,关闭,重启等
#!/bin/bash
read -p "请输入需要管理的服务名称(vsftpd):" service
case $service invsftpd)read -p "请输入要操作的动作:" actioncase $action instart|S)service vsftpd start;;stop|P)service vsftpd stop;;reload|restart|R)service vsftpd reload;;   esac;;httpd)echo "apache is running...";;*)echo "请输入需要管理的服务名称(vsftpd):";;
esac        

案例2

模拟一个多任务维护界面。当执行程序时先显示总菜单,然后进行选择后做相应维护监控操作。

 h   显示命令帮助f 显示磁盘分区d 显示磁盘挂载m 查看内存使用u 查看系统负载q 退出程序分析:
1. 打印菜单
2. 等待用户输入需要的操作编号  read caseecho "h 显示命令帮助"
...cat <<EOFh 显示命令帮助f 显示磁盘分区d 显示磁盘挂载m 查看内存使用u 查看系统负载q 退出程序EOF#!/bin/bash
#打印菜单
cat <<-EOFh   显示命令帮助f 显示磁盘分区d 显示磁盘挂载m 查看内存使用u 查看系统负载q 退出程序EOF#让用户输入需要的操作
while true
do
read -p "请输入需要操作的选项[f|d]:" var1
case $var1 inh)cat <<-EOFh       显示命令帮助f       显示磁盘分区d       显示磁盘挂载m       查看内存使用u       查看系统负载q       退出程序EOF;;f)fdisk -l;;d)df -h;;m)free -m;;u)uptime;;q)exit;;
esac
done#!/bin/bash
#打印菜单
menu(){cat <<-ENDh   显示命令帮助f 显示磁盘分区d 显示磁盘挂载m 查看内存使用u 查看系统负载q 退出程序END
}
menu
while true
do
read -p "请输入你的操作[h for help]:" var1
case $var1 inh)menu;;f)read -p "请输入你要查看的设备名字[/dev/sdb]:" var2case $var2 in/dev/sda)fdisk -l /dev/sda;;/dev/sdb)fdisk -l /dev/sdb;;esac;;d)lsblk;;m)free -m;;u)uptime;;q)exit;;
esac
done

课堂练习1

  1. 输入一个等级(A-E),查看每个等级的成绩;如:输入A,则显示“90分~100分”,依次类推
  2. 模拟2人第一次相亲的场景,使用read让用户输入它的名字,性别,年龄(年龄放在性别判断后);在case里面再嵌套case菜单,使之选项更丰富。

要求:
1)

  • 对性别进行判断,如果不输入男或者女,则显示”你是泰国来的吗?“
  • 如果是男的,对其年龄进行判断。

2)

  • 如果男的年龄大于等于18岁则显示“某某先生,你结婚了吗?”;
  • 如果对方回答结了或者yes,则显示“结了你来这凑什么热闹”;
  • 如果对方回答没有或者no,再次询问“那你有房有车吗?”;
  • 如果既不说结了也不说没结则显示:“你到底结没结婚啊?”
  • 如果回答有房有车,则显示”咱去民政局领证吧“;
  • 如果回答没有,则显示“不好意思,我去下洗手间。”;
  • 如果既不说有又不说没有,则显示“别浪费时间,请正面回答”。
  • 如果男的年龄小于18岁,则显示“某某某你个小毛孩也来这凑热闹啦”

3)如果是女的,并且年龄大于等于18岁,则显示”某某女士你好“;否则显示”某某小姐你好“

参考:
#!/bin/bash
read -p "输入你的姓名:" name
read -p "输入你的性别:" gendercase "$gender" in男|man|male|boy )read -p "输入你的年龄:" ageif [ $age -ge 18 ];thenread -p "$name先生,你结婚了吗?" anwsercase "$anwser" in结了|有|yes )echo "结了你还来干嘛?";;没结|没有|没|no )read -p "有房有车吗?" anwser2case "$anwser2" in有)echo "咱就直接去民政局领证吧";;没有 )echo "不好意思,我去下洗手间";;* )echo "别浪费时间,请正面回答"esac;;* )echo "你到底结没结?"esacelseecho "$name小子"fi;;女|woman|female|girl|lady )read -p "输入你的年龄:" ageif [ $age -ge 18 ];thenecho "$name女士"elseecho "$name小姐"fi;;* )echo "你是泰国来的吗?"
esac该程序有个bug:如果输入年龄为负数或者0也是可以的,如何修复bug?增加一个条件:如果输入的年龄小于等于10则显示:”不跟你玩了。。。“在最后加入如下语句即可:
if [ $age -ge 18 ];thenecho "$name女士"elif[ $age -le 10 ];thenecho "不跟你玩了"exit 1elseecho "$name小姐"fi;;* )echo "你是泰国来的吗?"esac

二、函数

shell中允许将一组命令集合语句形成一段可用代码,这些代码块称为shell函数。给这段代码起个名字称为函数名,后续可以直接调用该段代码的功能。

2.1 函数定义

函数名()
{函数体(一堆命令的集合,来实现某个功能)
}function 函数名()
{函数体(一堆命令的集合,来实现某个功能)
}function_name() {commandcommand
}function function_name() {commandcommand
}函数中return说明:
1.return可以结束一个函数,类似于前面讲的循环控制语句break(结束当前循环,执行循环体后面的代码)
2.return默认返回函数中最后一个命令的退出状态,也可以给定参数值,该参数值的范围是0-256之间。
3.如果没有return命令,函数将返回最后一个Shell的退出值。

2.2 函数的调用

  • 当前命令行调用
[root@MissHou shell04]# cat fun1.sh
#!/bin/bash
hello(){echo "hello lilei $1"
hostname
}
menu(){cat <<-EOF
1. mysql
2. web
3. app
4. exit
EOF
}[root@MissHou shell04]# source fun1.sh
[root@MissHou shell04]# . fun1.sh [root@MissHou shell04]# hello 888
hello lilei 888
MissHou.itcast.cc
[root@MissHou shell04]# menu
1. mysql
2. web
3. app
4. exit
  • 定义到用户的环境变量中

/etc/profile    /etc/bashrc     ~/.bash_profile ~/.bashrc[root@MissHou shell04]# cat ~/.bashrc
# .bashrc# User specific aliases and functionsalias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then. /etc/bashrc
fihello(){echo "hello lilei $1"
hostname
}
menu(){cat <<-EOF
1. mysql
2. web
3. app
4. exit
EOF
}注意:
当用户打开bash的时候会读取该文件
  • 脚本中调用
#!/bin/bash
#打印菜单
source ./fun1.sh
menu(){cat <<-ENDh   显示命令帮助f 显示磁盘分区d 显示磁盘挂载m 查看内存使用u 查看系统负载q 退出程序END
}
menu        //调用函数

2.3 应用案例

需求:写一个脚本让用户输入基本信息(姓名,性别,年龄),如不输入一直提示输入,最后根据用户的信息输出相对应的内容

思路:

  • 循环直到输入字符串不为空 (该功能可以定义为一个函数,方便下面脚本调用)
  • 根据用户输入信息做出匹配判断 case 语句
#!/bin/bash
#该函数实现用户如果不输入内容则一直循环直到用户输入为止,并且将用户输入的内容打印出来
input_fun()
{input_var=""output_var=$1while [ -z $input_var ]doread -p "$output_var" input_vardoneecho $input_var
}input_fun 请输入你的姓名:或者
#!/bin/bash
fun(){read -p "$1" name
if [ -z $name ];then
fun $1
else
echo $name
fi
}#调用函数并且获取用户的姓名、性别、年龄分别赋值给name、sex、age变量
name=$(input_fun 请输入你的姓名:)
sex=$(input_fun 请输入你的性别:)
age=$(input_fun 请输入你的年龄:)#根据用户输入的性别进行匹配判断
case $sex inman)if [ $age -gt 18 -a $age -le 35 ];thenecho "中年大叔你油腻了吗?加油"elif [ $age -gt 35 ];thenecho "保温杯里泡枸杞"elseecho "年轻有为。。。"fi;;woman)xxx;;*)xxx;;
esac描述以下代码含义:
:()
{:|:&
}
::(){:|:&}:

三、综合案例

任务/背景:

现有的跳板机虽然实现了统一入口来访问生产服务器,yunwei用户权限太大可以操作跳板机上的所有目录文件,存在数据被误删的安全隐患,所以希望你做一些安全策略来保证跳板机的正常使用。

具体要求:

  1. 只允许yunwei用户通过跳板机远程连接后台的应用服务器做一些维护操作
  2. 公司运维人员远程通过yunwei用户连接跳板机时,跳出以下菜单供选择:
欢迎使用Jumper-server,请选择你要操作的主机:
1. DB1-Master
2. DB2-Slave
3. Web1
4. Web2
h. help
q. exit
  1. 当用户选择相应主机后,直接免密码登录成功
  2. 如果用户不输入一直提示用户输入,直到用户选择退出

分析:

  1. 打印菜单——>定义函数 echo cat
  2. 让用户选择需要操作的机器 case…esac
  3. 配置免密登录
  4. 每个菜单提供功能——>case…esac用户选择做的事情
  5. 循环让用户输入选择
  6. 每个功能写成函数——>不是必须
  7. 脚本放的位置——>yunwei用户的家目录
#!/bin/bash
# jumper-server
# 定义菜单打印功能的函数
menu()
{cat <<-EOF
欢迎使用Jumper-server,请选择你要操作的主机:
1. DB1-Master
2. DB2-Slave
3. Web1
4. Web2
h. help
q. exitEOF
}while true
do
# 调用函数来打印菜单
clear
menu
# 菜单选择,case...esac语句
read -p "请选择你要访问的主机:" host
case $host in1)ssh root@10.1.1.2;;2)ssh root@10.1.1.3;;3)ssh root@10.1.1.2;;h)menu;;q)exit;;
esac
done将脚本放到yunwei用户家目录里的.bashrc里执行:
bash ~/jumper-server.sh
exit#!/bin/bash
#公钥推送成功
trap '' 1 2 3 19
#打印菜单用户选择
menu(){cat <<-EOF
欢迎使用Jumper-server,请选择你要操作的主机:
1. DB1-Master
2. DB2-Slave
3. Web1
4. Web2
h. help
q. exit
EOF
}#调用函数来打印菜单
menu
while true
do
read -p "请输入你要选择的主机[h for help]:" host#通过case语句来匹配用户所输入的主机
case $host in1|DB1)ssh root@10.1.1.1;;2|DB2)ssh root@10.1.1.2;;3|web1)ssh root@10.1.1.250;;h|help)clear;menu;;q|quit)exit;;
esac
done#!/bin/bash
#jumper-server
#菜单打印
trap '' 1 2 3
while true
do
cat <<-END
欢迎使用Jumper-server,请选择你要操作的主机:
1. DB1-Master
2. DB2-Slave
3. Web1
4. Web2
5. exit
END
#让用户选择相应的操作
read -p "请输入你要操作的主机:" host
case $host in1)ssh root@10.1.1.2;;2)ssh root@10.1.1.3;;3)ssh root@10.1.1.4;;5)exit;;*)clearecho "输入错误,请重新输入...";;
esac
done自己完善功能:
1. 用户选择主机后,需要事先推送公钥;如何判断公钥是否已推
2. 比如选择web1时,再次提示需要做的操作,比如:
clean log
重启服务
kill某个进程

补充:

1) SIGHUP        重新加载配置
2) SIGINT       键盘中断^C
3) SIGQUIT      键盘退出
9) SIGKILL       强制终止
15) SIGTERM     终止(正常结束),缺省信号
18) SIGCONT    继续
19) SIGSTOP    停止
20) SIGTSTP     暂停^Z

四、正则表达式

1. 什么是正则表达式

正则表达式(Regular Expression、regex或regexp,缩写为RE),也译为正规表示法、常规表示法,是一种字符模式,用于在查找过程中匹配指定的字符。

许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。

正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。

支持正则表达式的程序如:locate |find| vim| grep| sed |awk

2. 第一类正则

  • 名词解释:

元字符:指那些在正则表达式中具有特殊意义的专用字符,如:点(.) 星(*) 问号(?)等

前导字符:即位于元字符前面的字符 ab**c*** aoo**o.**

  • 正则中常用的元字符

示例文本:

[root@server ~]# cat 1.txt
ggle
gogle
google
gooogle
goooooogle
gooooooogle
taobao.com
taotaobaobao.comjingdong.com
dingdingdongdong.com
10.1.1.1
Adfjd8789JHfdsdf/
a87fdjfkdLKJK
7kdjfd989KJK;
bSKJjkksdjf878.
cidufKJHJ6576,hello world
helloworld yourself
(1).       任意单个字符,除了换行符
(2)*      前导字符出现0次或连续多次  ab*能匹配“a”,“ab”以及“abb”,但是不匹配“cb”
(3).*     任意长度的字符  ab.*  ab123 abbb abab
(4)^      行的开头
(5)$      行的结尾
(6)^$     空行(7)[]       匹配指定字符组内的任一单个字符   [abc]
(8)[^]    匹配不在指定字符组内的任一字符     [^abc](9)^[]  匹配以指定字符组内的任一字符开头   ^[abc]
(10)^[^]  匹配不以指定字符组内的任一字符开头  ^[^abc] (11)\<      取单词的头
(12)\>     取单词的尾
(13)\<\>        精确匹配符号  grep -w 'xxx'(14)\{n\}  匹配前导字符连续出现n次    go\{2\}   google  gooogle
(15)\{n,\}    匹配前导字符至少出现n次
(16)\{n,m\}   匹配前导字符出现n次与m次之间 (17) \(strings\)    保存被匹配的字符将192.168.0.254 换成 192.168.1.254
vim 1.txt
:%s#\(192\.168\)\.0\.\(254\)#\1\.100\.\2    //底行模式下匹配
将10.1.1.1替换成10.1.1.254
:%s#\(10.1.1\).1#\1.254#g
:%s/\(10.1.1\).1/\1.254/g # sed -n 's#\(192\.168\)\.0\.254#\1\.1\.254#p'
找出含有192.168的行,同时保留192.168并标记为标签1,之后可以使用\1来引用它。最多可以定义9个标签,从左边开始编号,最左边的是第一个。[root@server shell05]# sed -n 's#10.1.1.1#10.1.1.254#p' 1.txt
10.1.1.254
[root@server shell05]# sed -n 's#\(10.1.1\).1#\1.254#p' 1.txt
10.1.1.254将helloworld yourself 换成hellolilei myselfvim 1.txt
:%s#\(hello\)world your\(self\)#\1lilei my\2#g# sed -n 's/\(hello\)world your\(self\)/\1lilei my\2/p' 1.txt
hellolilei myself[root@server shell05]# sed -n 's/helloworld yourself/hellolilei myself/p' 1.txt
hellolilei myself
[root@server shell05]# sed -n 's/\(hello\)world your\(self\)/\1lilei my\2/p' 1.txt
hellolilei myself[0-9] [a-z] [A-Z] [a-zA-Z] [a-Z]
=================================================================================
Perl内置正则:
\d      匹配数字  [0-9]
\w      匹配字母数字下划线[a-zA-Z0-9_]
\s      匹配空格、制表符、换页符[\t\r\n]#grep -P '\d' test.txt
#grep -P '\w' test.txt
#grep -P '\s' test.txt
  • 扩展类的正则表达式 grep -E 或则 egrep
扩展正则表达式元字符
+          匹配一个或多个前导字符     bo+    boo bo
?           匹配零个或一个前导字符     bo? b boa|b     匹配a或b
()          组字符    hello myself yourself     (my|your)self{n}       前导字符重复n次            \{n\}
{n,}        前导字符重复至少n次    \{n,\}
{n,m}       前导字符重复n到m次      \{n,m\}# grep "root|ftp|adm" /etc/passwd
# egrep "root|ftp|adm" /etc/passwd
# grep -E "root|ftp|adm" /etc/passwd# grep -E 'o+gle' test.txt
# grep -E 'o?gle' test.txt # egrep 'go{2,}' 1.txt
# egrep '(my|your)self' 1.txt[root@jumper shell06]# grep '[0-9]\{2\}\.[0-9]\{1\}\.[0-9]\{1\}\.[0-9]\{1\}' 1.txt
10.1.1.1
[root@jumper shell06]# grep '[0-9]{2}\.[0-9]{1}\.[0-9]{1}\.[0-9]{1}' 1.txt
[root@jumper shell06]# grep -E '[0-9]{2}\.[0-9]{1}\.[0-9]{1}\.[0-9]{1}' 1.txt
10.1.1.1
[root@jumper shell06]# grep -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' 1.txt
10.1.1.1
[root@jumper shell06]# grep -E '([0-9]{1,3}\.){3}[0-9]{1,3}' 1.txt
10.1.1.1

3. 第二类正则

表达式 功能 示例
[:alnum:] 字母与数字字符 [[:alnum:]]+
[:alpha:] 字母字符(包括大小写字母) [[:alpha:]]{4}
[:blank:] 空格与制表符 [[:blank:]]*
[:digit:] 数字 [[:digit:]]?
[:lower:] 小写字母 [[:lower:]]{4,}
[:upper:] 大写字母 [[:upper:]]+
[:punct:] 标点符号 [[:punct:]]
[:space:] 包括换行符,回车等在内的所有空白 [[:space:]]+
[root@server shell05]# grep -E '^[[:digit:]]+' 1.txt
[root@server shell05]# grep -E '^[^[:digit:]]+' 1.txt
[root@server shell05]# grep -E '[[:lower:]]{4,}' 1.txt

4. 课堂作业

在自己虚拟机里创建如下内容的文件:
# cat test.txt
Aieur45869Root0000
9h847RkjfkIIIhello
rootHllow88000dfjj
8ikuioerhfhupliooking
hello world
192.168.0.254
welcome to uplooking.
abcderfkdjfkdtest
rlllA899kdfkdfj
iiiA848890ldkfjdkfj
abc
12345678908374
123456@qq.com
123456@163.com
abcdefg@itcast.com23ed

要求如下:

1、查找不以大写字母开头的行(三种写法)。
2、查找有数字的行(两种写法)
3、查找一个数字和一个字母连起来的
4、查找不以r开头的行
5、查找以数字开头的
6、查找以大写字母开头的
7、查找以小写字母开头的
8、查找以点结束的
9、去掉空行
10、查找完全匹配abc的行
11、查找A后有三个数字的行
12、统计root在/etc/passwd里出现了几次
13、用正则表达式找出自己的IP地址、广播地址、子网掩码
ifconfig eth0|grep Bcast|grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'
ifconfig eth0|grep Bcast| grep -E -o '([0-9]{1,3}.){3}[0-9]{1,3}'
ifconfig eth0|grep Bcast| grep -P -o '\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}'
ifconfig eth0|grep Bcast| grep -P -o '(\d{1,3}.){3}\d{1,3}'
ifconfig eth0|grep Bcast| grep -P -o '(\d+.){3}\d+'# egrep --color '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=10.1.1.1
NETMASK=255.255.255.0
GATEWAY=10.1.1.254# egrep --color '[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}' /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=10.1.1.1
NETMASK=255.255.255.0
GATEWAY=10.1.1.25414、找出文件中的ip地址并且打印替换成172.16.2.254
grep -o -E '([0-9]{1,3}\.){3}[0-9]{1,3}' 1.txt |sed -n 's/192.168.0.\(254\)/172.16.2.\1/p'15、找出文件中的ip地址
grep -o -E '([0-9]{1,3}\.){3}[0-9]{1,3}' 1.txt16、找出全部是数字的行
grep -E '^[0-9]+$' test
17、找出邮箱地址
grep -E '^[0-9]+@[a-z0-9]+\.[a-z]+$'grep --help:
匹配模式选择:
Regexp selection and interpretation:-E, --extended-regexp     扩展正则-G, --basic-regexp        基本正则-P, --perl-regexp         调用perl的正则-e, --regexp=PATTERN      use PATTERN for matching-f, --file=FILE           obtain PATTERN from FILE-i, --ignore-case         忽略大小写-w, --word-regexp         匹配整个单词

五、正则总结

元字符:在正则中,具有特殊意义的专用字符。. *

前导字符:元字符前面的字符叫前导字符

元字符 字符说明 示例
* 前导字符出现0次或者连续多次 ab* abbbb
. 除了换行符以外,任意单个字符 ab. ab8 abu
.* 任意长度的字符 ab.* adfdfdf
[] 括号里的任意单个字符或一组单个字符 [abc][0-9][a-z]
[^] 不匹配括号里的任意单个字符或一组单个字符 [^abc]
1 匹配以括号里的任意单个字符开头 2
^[^] 不匹配以括号里的任意单个字符开头
^ 行的开头 ^root
$ 行的结尾 bash$
^$ 空行
\{n\}和{n} 前导字符连续出现n次 [0-9]\{3\}
\{n,\}和{n,} 前导字符至少出现n次 [a-z]{4,}
\{n,m\}和{n,m} 前导字符连续出现n-m次 go{2,4}
\<\> 精确匹配单词 \<hello\>
\(\) 保留匹配到的字符 \(hello\)
+ 前导字符出现1次或者多次 [0-9]+
? 前导字符出现0次或者1次 go?
| ^root|^ftp
() 组字符 (hello|world)123
\d perl内置正则 grep -P \d+
\w 匹配字母数字下划线

六、课后作业

写一个自动搭建apache服务的脚本,要求如下:
1、用户输入web服务器的IP、域名以及数据根目录
2、如果用户不输入则一直提示输入,直到输入为止
3、当访问www.test.cc时可以访问到数据根目录里的首页文件“this is test page”

参考:
#!/bin/bash
conf=/etc/httpd/conf/httpd.conf
input_fun()
{input_var=""output_var=$1while [ -z $input_var ]doread -p "$output_var" input_vardoneecho $input_var
}
ipaddr=$(input_fun "Input Host ip[192.168.0.1]:")
web_host_name=$(input_fun "Input VirtualHostName [www.test.cc]:")
root_dir=$(input_fun "Input host Documentroot dir:[/var/www/html]:")[ ! -d $root_dir ] && mkdir -p $root_dir
chown apache.apache $root_dir && chmod 755 $root_dir
echo this is $web_host_name > $root_dir/index.html
echo "$ipaddr $web_host_name" >> /etc/hosts[ -f $conf ] && cat >> $conf <<end
NameVirtualHost $ipaddr:80
<VirtualHost $ipaddr:80>ServerAdmin webmaster@$web_host_nameDocumentRoot $root_dirServerName $web_host_nameErrorLog logs/$web_host_name-error_logCustomLog logs/$web_host_name-access_loh common
</VirtualHost>
end

  1. ↩︎

  2. abc ↩︎

SHELL编程之CASE语句+函数+正则相关推荐

  1. 【Shell】编程之CASE语句+函数+正则(6)

    #课程目标 掌握case语句的基本语法结构 掌握函数的定义及调用 掌握常用的正则表达式元字符含义 一.case语句 关键词:确认过眼神,你是对的人

  2. day31-SHELL编程之CASE语句+函数+正则

    课程目标 掌握case语句的基本语法结构 掌握函数的定义及调用 掌握常用的正则表达式元字符含义 一.case语句 case语句为多选择语句.可以用case语句匹配一个值与一个模式,如果匹配成功,执行相 ...

  3. 06_shell编程之CASE语句+函数+正则

    文章目录 一.case语句 1. 语法结构 2. 应用案例 ㈠ 脚本传不同值做不同事 ㈡ 根据用户需求选择做事 二.==函数== 1. 什么是函数? 2. 如何定义函数? ㈠ 当前命令行调用 ㈡ 定义 ...

  4. shell编程之case语句及函数

    shell编程之case语句 文章目录 shell编程之case语句 一.case语句 1. 语法结构 2. 应用案例 二.函数 1. 什么是函数? 2. 如何定义函数? 3. 函数如何调用? ㈠ 当 ...

  5. Shell编程之case语句与函数

    一.case语句 1.语法结构 2.应用案例 1)脚本传不同值做不同事 2)根据用户需求选择做事 二.函数 1.什么是函数? 2.如何定义函数? 3.函数如何调用? 1)当前命令行调用 2)定义到用户 ...

  6. shell脚本求和_【零基础学云计算】Shell编程之case语句与循环语句

    case多分支语句 循环语句 for循环语句 while循环语句 untli循环语句 Shell函数 Shell数组 case语句的结构 针对变量的不同取值,分别执行不同的命令序列 case 变量值 ...

  7. Shell 编程之 case 语句

    一.case 语句 1.case 语句概述 (1)case 语句的作用 使用 case 语句改写 if 多分支可以使脚本结构更加清晰.层次分明.针对变量的不同取 值,执行不同的命令序列. 2.case ...

  8. Shell编程之case语句

    1. case 语句 1.基本语法 case $变量名 in "值1") 如果变量的值等于值1,则执行程序1;; "值2") 如果变量的值等于值2,则执行程序2 ...

  9. 详解Shell编程之if语句实战(小结)

    本篇文章主要介绍了详解Shell编程之if语句实战(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 对于if语句,其实很多人都肯定的听说过,那么if语句到底是什么, ...

最新文章

  1. Java 必须掌握的 20+ 种 Spring 常用注解
  2. R语言gganimate包创建可视化gif动图:ggplot2可视化静态条形图(bar plot)、gganimate包创建动态条形图(bar plot)动画、基于transition_time函数
  3. Android资源文件 - 使用资源存储字符串 颜色 尺寸 整型 布尔值 数组
  4. OpenLayers事件处理Event.js(七)
  5. python2 与 python3的区别总结
  6. Android:生命周期案例
  7. jQuery使用ajax跨域请求获取数据
  8. android 三个点按钮实现_Android 常用侧滑栏实现
  9. 华为游戏帧率测试的软件,华为手机怎么在游戏内显示帧率 | 手游网游页游攻略大全...
  10. 你该不会不知道,web自动化测试中的八大定位方法吧!
  11. 【IMU】BMI160 Driver分析及使用
  12. java 解析xml工具类_轻松解析XML的工具类
  13. 分享10个超棒的设计素材网站
  14. 西门子PLC学习笔记十-(计数器)
  15. 腾讯云乐固客户端加固打包上线流程
  16. Auto MPG 汽车油耗预测(tensorflow深度学习龙书笔记)
  17. Qt之定制个性化系统托盘菜单(仿360安全卫士)
  18. 动作手游实时PVP帧同步方案(客户端)
  19. vue获取服务器路径图片显示,vue img图片路径和背景图片路径打包问题
  20. word中图片为嵌入式格式时显示不全_图片在word中显示不全怎么处理_word图片显示不全怎么办-win7之家...

热门文章

  1. 2022年10月各大学网络教育统考大学英语B考试复习题库及辅导
  2. mysql version pom_Maven的pom文件里,类似于这种版本号${spring.version} 是什么意思?...
  3. 这些年,比特大陆与前员工的那些恩怨情仇
  4. minicom安装、配置和使用
  5. 创始人是公关营销的关键所在
  6. Mysql一些表结构字段是数据库关键字需要避开,如果发现了就需要解决
  7. 程序员需要达到什么水平才能拿到20K?
  8. 大数据标签获取处理步骤_用大数据给用户“打标签”,精准营销就是这么简单!...
  9. 投资理财-大跌也许是好事情
  10. 2023年上半年系统集成项目管理工程师上午真题及答案解析