Shell学习笔记 - 分支语句
一、单分支if语句
1. 语法格式
if [ 条件判断式 ]; then
程序
fi 或者 if [ 条件判断式 ]
then
程序
fi 注意:中括号和条件判断式之间必须有空格
2. 示例1:判断登陆的用户是否是root
#!/bin/bash if [ "$USER" == root ];then
echo "Login User is root"
fi #########或者######### #!/bin/bash if [ "$USER" == root ]
then
echo "Login User is root"
fi
3. 示例2:判断分区使用率
#!/bin/bash
test=$(df -h | grep sda1 | awk '{print $5}' | cut -d '%' -f )
if [ $test -ge  ];then
    echo "Warning! /dev/sda1 is full!"
fi
二、双分支if语句
1. 语法格式
if [ 条件判断式 ]; then
条件成立时,执行的程序
else
条件不成立时,执行的程序
fi 或者 if [ 条件判断式 ]
then
条件成立时,执行的程序
else
条件不成立时,执行的程序
fi
2. 示例1:输入一个文件,判断是否存在
#!/bin/bash read -p "Please input a file:" file if [ -f $file ]; then
echo "File: $file exists!"
else
echo "File: $file not exists!"
fi
3. 示例2:判断apache服务是否启动了,如果没有启动,就代码启动
#!/bin/bash test=$(ps aux | grep httpd | grep -v 'grep' | wc -l) if [ $test -gt ]; then
echo "$(date) httpd is running!"
else
echo "$(date) httpd isn't running, will be started!"
/etc/init.d/httpd start
fi
三、多分支if语句
1. 语法格式
if [ 条件判断式1 ]; then
当条件判断式1成立时,执行程序1
elif [ 条件判断式2 ]; then
当条件判断式2成立时,执行程序2
.....省略更多条件.....
else
当所有条件都不成立时,最后执行此程序
fi
2. 示例:实现计算器
#!/bin/bash # 输入数字a,数字b和操作符
read -p "Please input number a:" a
read -p "Please input number b:" b
read -p "Please input operator[+|-|*|/]:" opt # 判断输入内容的正确性
testa=$(echo $a | sed 's/[0-9]//g')
testb=$(echo $a | sed 's/[0-9]//g')
testopt=$(echo $opt | sed 's/[+|\-|*|\/]//g') if [ -n "$testa" -o -n "$testb" -o -n "$testopt" ]; then
echo "input content is error!"
exit
elif [ "$opt" == "+" ]; then
result=$(($a+$b))
elif [ "$opt" == "-" ]; then
result=$(($a-$b))
elif [ "$opt" == "*" ]; then
result=$(($a*$b))
else
result=$(($a/$b))
fi echo "a $opt b = $result"
四、case语句
case语句和if...elif...else语句都是多分支条件语句,不过和if多分支条件语句不同的是,case语句只能判断一种条件关系,而if语句可以判断多种条件关系。
1. 语法格式
case $变量名 in
"值1")
如果变量的值等于值1,则执行程序1
;;
"值2")
如果变量的值等于值2,则执行程序2
;;
.....省略其他分支.....
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
2. 示例:判断用户输入
#!/bin/bash read -p "Please choose yes/no:" cmd case $cmd in
"yes")
echo "Your choose is yes!"
;;
"no")
echo "Your choose is no!"
;;
*)
echo "Your choose is error!"
;;
esac
Shell学习笔记 - 分支语句的更多相关文章
- shell 学习笔记5-shell-if语句
		
一.if条件语句 1.语法 1)单分支结构 第一种 if <条件表达式> then 指令 fi 第二种 if <条件表达式>:then 指令 fi 上文的"<条 ...
 - Shell学习笔记 - 循环语句
		
一.for循环 1. 语法格式1 for 变量 in 值1 值2 值3 ... do 程序 done 说明:程序将遍历所有的值,赋值给变量,然后在执行程序.也就是说,后面接多少个值,程序就循环多少次. ...
 - [转帖][Bash Shell] Shell学习笔记
		
[Bash Shell] Shell学习笔记 http://www.cnblogs.com/maybe2030/p/5022595.html 阅读目录 编译型语言 解释型语言 5.1 作为可执行程序 ...
 - shell学习笔记
		
shell学习笔记 .查看/etc/shells,看看有几个可用的Shell . 曾经用过的命令存在.bash_history中,但是~/.bash_history记录的是前一次登录前记录的所有指令, ...
 - shell学习笔记汇总
		
1.shell脚本中函数使用 函数定义在前,调用在后,顺序反了就没有效果了.函数调用为:函数名 参数列表 函数内部通过以下变量访问函数的参数:shell脚本函数中: $0: 这个脚本的名字 $n: 这 ...
 - SHELL学习笔记三
		
SHELL学习笔记一 SHELL学习笔记二 SHELL学习笔记三 for 命令 读取列表中的复杂值 从变量读取列表 从命令读取值 更改字段分隔符 用通配符读取目录 which 使用多个测试命令 unt ...
 - SHELL学习笔记----IF条件判断,判断条件
		
SHELL学习笔记----IF条件判断,判断条件 前言: 无论什么编程语言都离不开条件判断.SHELL也不例外. if list then do something here ...
 - shell 学习笔记2-shell-test
		
一.字符串测试表达式 前面一篇介绍:什么是shell,shell变量请参考: shell 学习笔记1-什么是shell,shell变量 1.字符串测试表达式参数 字符串需要用""引 ...
 - shell 学习笔记8-case条件语句
		
一.case语句简介 1.什么是case条件语句 case条件语句就相当于多分支的if/elif/else条件语句,但是比这样的语句更规范更好看,经常被用在失效系统服务启动脚本等企业应用中 程序将ca ...
 
随机推荐
- UITextFiled,UIButton,UIImageView交互相互之间的事件拦截
			
UIButton右上方添加一个笑button如: UIButton *button =[UIButton buttonWithType:UIButtonTypeCustom]; button.f ...
 - java去掉jsp标签内容的方法
			
//去掉内容的标签 public static String removeTag(String count){ try { int tagCheck=-1; do { i ...
 - 80X86保护模式及其编程(一)
			
80x86系统寄存器和系统指令 1.标志寄存器(EFLAGS) 标志寄存器EFLAGS的标志位含义如下图: TF 位8是跟踪标志(Trace flag),当设置该位时可为调试操作启动单步执行方式.复位 ...
 - A*算法为什么是最优的
			
图搜索的A*算法有两种情况: hn是可采纳的,但是不是满足一致性 如果满足一致性,A*算法的实现要简单一些:即使不检查closed节点的状态重复,也能得到最优的结果 下面是证明最优性的一些关键点: 1 ...
 - php涉及数据库操作时响应很慢。
			
症状描述: 网站是php开发的,大部分页面响应很慢. 本地开发时响应速度很快,但是部署到生产环境后大部分响应很慢. 通过谷歌浏览调试发现PHP页面加载很慢,有个别的php请求的响应时间甚至超过10秒, ...
 - (1) css的核心基础
			
css的核心基础 1.css的基本语法在具体使用css之前,请各位兄弟姐妹先思考一个生活中的问题,一般情况下我们是如何描述一个人的呢? 小明{ 民族:汉族: 性格:温柔: 性别:男: 体重:68kg ...
 - Eclipse背景颜色修改
			
改变背景颜色(黑底背景的设置) windows->Preferences->General->Editor->Text Editors windows->Preferen ...
 - TCP连接(Time_Wait、Close_Wait)说明
			
修改Time_Wait和CLOSE_WAIT时间 修改Time_Wait参数的方法 (在服务端修改)Windows下在HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlS ...
 - linux下oracle11g R2的启动与关闭监听、数据库
			
su - oracle 切换到oracle账户 lsnrctl start 启动监听 sqlplus /nolog 登陆sqlplus conn /as ...
 - C#与excel互操作的错误无法将类型为“Excel.ApplicationClass”的COM 对象强制转换为接口类型“Excel._Application”
			
如果您使用的电脑要操作的是office2003而之前使用过office2007使用此方法可解决您的问题 无法将类型为“Microsoft.Office.Interop.Excel.Applicatio ...