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 变 ...
随机推荐
- Python CBV和FBV
''' 说一下CBV(class+base+views)和FBV(function+base+views),我们之前Django 里写的都是FBV,今天看一下 CBV,也就是在我们的视图函数里写类 ' ...
- 【Java】浅谈HashMap
HashMap是常用的集合类,以Key-Value形式存储值.下面一起从代码层面理解它的实现. 构造方法 它有好几个构造方法,但几乎都是调此构造方法: public HashMap(int initi ...
- C语言学习之路
c语言学习 初识c语言 c语言数据类型.运算符和表达式(整数浮点数) 字符型数据/字符串 算术运算符和算术表达式(优先级,结合性等) 顺序程序设计(运算符之类内容,字符输入输出等) C/C++ 查看数 ...
- (原)使用TortoiseGit提交代码push的时候报错:HTTP 413 curl 22 The requested URL returned error: 413 Request Entity Too Large
今天我想rk的sdk包里面的一些东西提交到我的git服务器上,结果,总是报错,折腾了一下午,结果才解决. 首先看看我提交代码的时候,报错的信息: git.exe push --progress &qu ...
- Oracle 11g EM删除重建的方法
虚拟机里的Oracle 11g好长时间没用了,突然打开之后发现EM无法访问了,EM可以重建,于是也不打算查找原因了,直接使大招 OS:Windows Server 2012 Oracle:11g R2 ...
- win 停止tomcat
1.首先查找到占用8080端口的进程号PID是多少 CMD>netstat -ano | findstr 8080 这个命令输出的最后一列表示占用8080端口的进程号是多少,假设为1234 2. ...
- Javascript 检测键盘按键
Javascript中 有3个事件句柄在对应键盘的输入状态:keydown.keypress和keyup. 分别对应的意思是:按键被按下(按下按键但还没有抬起).点击按键(按下并抬起按键).按键抬起( ...
- 仿迅雷播放器教程 -- 基于VLC的C++播放器 (4)
经过前面的介绍,想必大家对VLC和ffmpeg都有一定印象了,还记得学习ffmpeg多么蛋疼吗?那么VLC会不会也这么蛋疼呢? 那么我们来看一段官方的Demo,Alberl精简了Demo,只留 ...
- 仿迅雷播放器教程 -- 提取exe资源(12)
既然选择了一个界面库,那么咱们就开始吧! 既然是仿迅雷播放器,那当然要把迅雷播放器的资源提取出来啦,但是很多小伙伴可能不知道怎么提取,所以这里就教大家一些方法: 一.传统的资源提取器 ...
- [Hinton] Neural Networks for Machine Learning - Basic
Link: Neural Networks for Machine Learning - 多伦多大学 Link: Hinton的CSC321课程笔记1 Link: Hinton的CSC321课程笔记2 ...