shell脚本之流程控制语句
一、分支控制语句
1、if .. fi条件
if condition; then
action
fi
2、if .. else .. fi条件
if condition;then
action;
else
action
fi
3、if .. else if ..else ..fi条件
if condition;then
action;
else if condition;then
action;
else
action;
fi
注意:if和slse语句可以进行嵌套,if条件判断可能因此变得很长,可以使用逻辑运算符使他变得简洁一点:
[ condition ] && action; #如果condition条件为真,则执行action;
[ condition ] || action; #如果condition条件为假,则执行action;
二、循环控制语句
1、for循环
for var in list;
do
action;
done
其中list可以是一个字符串、序列或数组等。
采用c语言方式的for循环语句:
for((i=0;i<10;i++))
{
action
}
或
for((i=0;i<10;i++));
do
action
done
2、while循环
while condition
do
action
done
3、until循环语法
until condition
do
action
done
二、逻辑运算符和逻辑表达式
1、常用逻辑运算符如下:
l &&(或者 -a):逻辑与
l ||(或者 -o):逻辑或
2、逻辑表达式
1)算术比较:条件一般被放在[]内,切记中括号前后需要留有空格。
常用的算术操作符:
l -eq:等于
l -ne:不等于
l -gt:大于
l -lt:小于
l -ge:大于等于
l -le:小于等于
2)文件系统运行符:条件比较一般被放在[]内,切记中括号前后需要留有空格。
l [ -f $file_var ]:给定变量包含正常的文件或文件名,返回真。
l [ -x $var ]:给定的文件包含可执行权限,返回真。
l [ -d $var ]: 给定的变量包含的是目录,返回真。
l [ -e $var ]: 给定的变量包含的文件存在,返回真。
l [ -c $var ]: 给定的变量包含一个字符设备路径,返回真。
l [ -b $var ]: 给定的变量是一个块设备文件路径,返回真。
l [ -w $var ]: 给定的文件包含可写权限,返回真。
l [ -r $var ]: 给定的文件包含可读权限,返回真。
l [ -L $var ]: 给定的文件包含一个符号链接,返回真。
3)字符串比较:条件比较一般被放在双[]内,切记中括号前后需要留有空格。
-z:字符串是空字符串,返回真。
-n:字符串是非空字符串,返回真。
4)test命令用来执行条件判断,test命令可以避免过多的[]。
例如:
if [ $var -eq 0];then
echo "true"
fi
可以写成:
if test $var -eq 0;then
echo "true"
fi
shell脚本之流程控制语句的更多相关文章
- shell脚本之流程控制
shell脚本之流程控制 shell脚本之流程控制 条件语句 条件判断 循环语句for,while,until for循环 while循环 until循环 循环控制语句continue 循环控制语 ...
- shell脚本 3 流程控制
shell流程控制 流程控制是改变程序运行顺序的指令.linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case).下面我将通过例子介 ...
- shell编程3 ---流程控制语句
shell编程流程控制语句 一.if流程控制语句 1.单分支if条件判断语句 if [ 条件判断式 ]:then 或者 if[ 条件判断式 ] 程序 ...
- Shell脚本学习 - 流程控制和函数
继续Shell的学习.上两篇是关于基本数据类型,基本语法以及运算符相关,这一篇是流程控制相关(if, for, while) 流程控制 if else 流程控制不可为空,如果else没有语句执行,就不 ...
- shell入门之流程控制语句 分类: 学习笔记 linux ubuntu 2015-07-10 16:38 89人阅读 评论(0) 收藏
1.case 脚本: #!/bin/bash #a test about case case $1 in "lenve") echo "input lenve" ...
- shell入门之流程控制语句
1.case 脚本: #!/bin/bash #a test about case case $1 in "lenve") echo "input lenve" ...
- Shell脚本之流程控制(if、for、while)
if 判断 if语句的三种格式: (1)if (2)if else (3)if elif else 语法格式如下: #if 语法格式 if 条件 then 命令1... 命令2... fi #if e ...
- shell脚本(10)-流程控制while
一.while循环介绍 while循环与for一样,一般不知道循环次数使用for,不知道循环的次数时推荐使用while 二.while语法 while [ condition ] #条件为真才会循环, ...
- shell脚本(11)-流程控制case
一.case介绍 生产环境下,遇到要根据不同的状况执行不同的预案的情况,首先根据可能出现的情况写出对应预案,根据出现的情况来加载不同的预案 特点:根据给予的不同的代码块 二.case语法 case 变 ...
随机推荐
- IDEA使用笔记(七)——编辑器最大个数的设置
我想一定有许多人和我一样在使用IDEA的时候,打开了许多的编辑器选项卡,但是打开的数量是有限的,我们想打开更多的页面,并且希望控制当再次达到大限的时候能关闭那些我们最久没有看的文件! 好吧!看下面的配 ...
- AJAX技术之DWR框架
DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站.它可以允许在浏览器里的代码使用运行在 ...
- Atitit 手机图片备份解决方案attilax总结
Atitit 手机图片备份解决方案attilax总结 1.1. 图片分类 相机图片与app图片1 1.2. 增量备份,只能使用按照时间法备份..1 1.3. 备份工具选型1 1.4. App图片,只好 ...
- Socket网络编程--简单Web服务器(3)
上一小节已经实现了浏览器发送请求,然后服务器给出应答信息,然后浏览器显示出服务器发送过来的网页.一切看起来都是那么的美好.这一小节就准备实现可以根据地址栏url的不同来返回指定的网页.目前还不考虑带参 ...
- 系统用户在Samba服务器中起一个别名
(1)通过/etc/samba/smbusers文件设置用户映射关系 如实列: # cat /etc/samba/smbusers # Unix_name = SMB_name1 SMB_name2 ...
- 9最好的JavaScript压缩工具
削减是一个从源代码中删除不必要的字符的技术使它看起来简单而整洁.这种技术也被称为代码压缩和最小化.在这里,我们为你收集了10个最好的JavaScript压缩工具将帮助您删除不必要的空格,换行符,评论, ...
- Node入门教程(10)第八章:Node 的事件处理
Node中大量运用了事件回调,所以Node对事件做了单独的封装.所有能触发事件的对象都是 EventEmitter 类的实例,所以上一篇我们提到的文件操作的可读流.可写流等都是继承了 EventEmi ...
- Laravel 的 Homestead 开发环境部署
---恢复内容开始--- Laravel 努力在整个PHP开发过程中提供令人愉快的开发体验,当然也包括本地的开发环境. 首先明白以下几个概念 VirtualBox -- Oracle 公司的虚拟机软件 ...
- Go语言实践_实现一(客户端)对一(服务器端)聊天室
一.目的 使用Go语言实现一个服务器端与客户端的聊天室. 软件:Goland,Go1.9 代码仓库地址 二.思路 1,首先启动服务器端,使用listen_socket函数监听IP地址上的客户端连接: ...
- 树莓派配置tomcat
先安装配置好apache apt-get install apache2 /etc/init.d/apache2 start (blog passage from http://www.cnblogs ...