学习下条件判断第二部分
1,
学习if …. then 简单判断或多层判断,符合条件做什么,不符合条件又做什么。这个是经常用到的,看一眼就会了。
if [ 条件判断式 ]; then 当条件判断式成立时,可以进行的命令工作内容; fi<==将 if 反过来写,就成为 fi 啦!结束 if 之意! |
# 一个条件判断,分成功进行与失败进行 (else)if [ 条件判断式 ]; then 当条件判断式成立时,可以进行的命令工作内容; else 当条件判断式不成立时,可以进行的命令工作内容; fi |
比如下边自己随便写一个非常简单例子以供理解ifthen判断说明用法:
该sh脚本用来简单测试下web和ftp是否正常启动的, 首先使用webtest和ftptest获取变量内容,根据变量值进行判断输出。
#!/bin/bash
webtest=$(netstat -tunlp | grep “:80″ )
ftptest=$(netstat -tnulp | grep “:21″)
echo $webtest //先输出看下内容
echo $ftptest
if [ “$webtest” != “” ]; then //判断说明,这个条件也可以用其他方式判断,比如if [ $webtest == “” ];then…就是后边的语句要修改了,反过来写。
echo “web is running! “
else
echo “web is not running!WEB is dead,please check! “
fi
if [ “$ftptest” != “” ]; then
echo “ftp is runing “
else
echo “ftp is dead,please check!”
fi
执行结果:
[root@aliserver ~]# sh test.sh
web test is : tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 1158/httpd tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1128/nginx
helloftp is : tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1148/pure-ftpd (SER
web is running!
ftp is runing
补充说明:多重判断,根据情况来定是否用那种
# 多个条件判断 (if ... elif ... elif ... else) 分多种不同情况运行if [ 条件判断式一 ]; then 当条件判断式一成立时,可以进行的命令工作内容; elif [ 条件判断式二 ]; then 当条件判断式二成立时,可以进行的命令工作内容; else 当条件判断式一与二均不成立时,可以进行的命令工作内容; fi |
2,利用 case ….. in ….. esac 判断
case $变量名称 in<==关键字为 case ,还有变量前有钱字号 "第一个变量内容")<==每个变量内容建议用双引号括起来,关键字则为小括号 ) 程序段 ;;<==每个类别结尾使用两个连续的分号来处理! "第二个变量内容") 程序段 ;; *)<==最后一个变量内容都会用 * 来代表所有其他值 不包含第一个变量内容与第二个变量内容的其他程序运行段 exit 1 ;;esac<==最终的 case 结尾!『反过来写』思考一下! |
写一个简单的例子理解一下:
#/bin/bash
read -p “please input one word:” y
case $y in
“1”)
echo “you input int 1~”
;;
“2”)
echo “you input int 2~”
;;
“3”)
echo “you input int 3~”
;;
*)
echo “you dont input 123”
;;
esac
要注意的是,这个语法以 case (实际案例之意) 为开头,结尾自然就是将 case 的英文反过来写!就成为 esac 罗! 不会很难背啦!
每一个变量内容的程序段最后都需要两个分号 (;;) 来代表该程序段落的结束,这挺重要的喔!
至於为何需要有 * 这个变量内容在最后呢?这是因为,如果使用者不是输入变量内容一或二时, 我们可以告知使用者相关的资讯啊!
一般来说,使用『 case $变量 in 』这个语法中,当中的那个『 $变量 』大致有两种取得的方式:
- 直接下达式:例如上面提到的,利用『 script.sh variable 』 的方式来直接给予 $1 这个变量的内容,这也是在 /etc/init.d 目录下大多数程序的设计方式。
- 互动式:透过 read 这个命令来让使用者输入变量的内容
4 , 利用function 函数实现 关键函数fname算法。
function fname() { 程序段 } |
注意: shell script 的运行方式是由上而下,由左而右, 因此在 shell script 当中的 function 的配置一定要在程序的最前面, 这样才能够在运行时被找到可用的程序段!
写一个简单的例子了解下:
#!/bin/bash
function printit(){
echo -n “Your choice is ”
}
echo “This program will print your selection !”
read -p “please input one word:” y
case $y in
“one”)
printit; echo $y | tr ‘a-z’ ‘A-Z’
;;
“two”)
printit; echo $y | tr ‘a-z’ ‘A-Z’
;;
“three”)
printit; echo $y | tr ‘a-z’ ‘A-Z’
;;
*)
echo “pleast input {one|two|three}”
;;
esac
转载请注明:西数超哥博客www.ysidc.top» 【原创】shell学习笔记第四天(条件判断二)
https://www.ysidc.top 西数超哥博客,数据库,西数超哥,虚拟主机,域名注册,域名,云服务器,云主机,云建站,ysidc.top