Shell脚本学习 - 流程控制和函数
继续Shell的学习。上两篇是关于基本数据类型,基本语法以及运算符相关,这一篇是流程控制相关(if, for, while)
流程控制
if else
流程控制不可为空,如果else没有语句执行,就不要写else
if:
if condition then command1 command2 ... commandN fi
if else:
if condition then command1 command2 ... conditionN else command fi
if else-if else:
if condition1 then command1 elif condition2 then command2 else commandN fi
if else语句经常和test命令结合使用
num1=$[*] num2=$[+] if test $[num1] -eq $[num2] then echo '两个数字相等' else echo '两个数字不等' fi
for循环
for循环常用格式
for var in item1 item2 ... itemN
do
command1
command2
...
commandN
done
还可以写成一行的形式
for var in item1 item2 ... itemN; do command1; command2... done
in列表可以包含替换、字符串和文件名
for loop in 5 # 顺序输出列表中所有数字
do
echo "The value is: $loop"
done
for str in 'This is a string' # 顺序输出字符串中所有字符
do
echo $str
done
while
condition通常为测试条件。格式如下
while condition
do
command
done
let命令:执行一个或多个表达式,变量计算中不需要加$表示变量
#!/bin/bash
int=
while(( $int<=))
do
echo $int
let "int++"
done
读取键盘输入
echo '按下 <CTRL-D> 退出'
echo -n '输入你最喜欢的网站名:'
while read FILM
do
echo "是的!$FILM是一个好网站"
done
无限循环
while:
do
command
done
或者
while true
do
command
done
或者
for (( ; ; ))
until循环
until循环执行一系列命令直至条件为true为止
一般while循环优于until循环
until condition
do
command
done
一个实例
#!/bin/bash a= until [ ! $a -lt ]
do
echo $a
a=`expr $a + `
done
case
多选择语句,匹配一个值一个模式
每个模式名用右括号结束
一旦模式匹配到其中一个,执行完匹配到的模式的所有命令后不再继续执行其他模式
如果没有匹配到任何模式,使用星号*捕获这个值,再执行后面的命令
case 值 in
模式1)
command1
command2
...
commandN
;;
模式2)
command1
command2
...
commandN
;;
*)
command1
command2
...
commandN
;;
esac # 就是case反过来写
跳出循环
break
continue
跟其他语言的break continue用法相同
Shell脚本学习 - 流程控制和函数的更多相关文章
- shell脚本之流程控制
shell脚本之流程控制 shell脚本之流程控制 条件语句 条件判断 循环语句for,while,until for循环 while循环 until循环 循环控制语句continue 循环控制语 ...
- shell脚本 3 流程控制
shell流程控制 流程控制是改变程序运行顺序的指令.linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case).下面我将通过例子介 ...
- 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 变 ...
- 【Shell 编程基础第二部分】Shell里的流程控制、Shell里的函数及脚本调试方法!
http://blog.csdn.net/xiaominghimi/article/details/7603003 本站文章均为李华明Himi原创,转载务必在明显处注明:转载自[黑米GameDev街区 ...
- Linux基础-shell脚本知识整理和脚本编写----------变量、运算符、流程控制、函数、计划任务(发送邮件)
I:知识整理:变量.运算符.流程控制.函数.计划任务 变量 系统变量:set:显示所有变量 env:环境变量 常用系统变量: path pwd lang home his ...
- Go语言学习之3 流程控制、函数
主要内容: 1. strings和strconv使用2. Go中的时间和日期类型3. 指针类型4. 流程控制5. 函数详解 1. strings和strconv使用 //strings . strin ...
- linux下shell脚本学习
在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具.Shell不仅仅是命令的收集,而且是一门非常棒的编程语言.您可以通过使用shell使大量的任务自动化,shel ...
随机推荐
- 使用Docker安装Nginx
启动命令 docker run -d -p : --name nginx -v $PWD/nginx.conf:/etc/nginx/nginx.conf -v $PWD/conf.d/:/etc/n ...
- 实验一 Java环境的搭建&Eclipse的安装
本次实验为在自己电脑上搭建Java环境,熟悉Java的编译和运行环境并安装Eclipse 一.JAVA环境的搭建 1.从Oracle网站上下载Java的jdk [https://www.oracle. ...
- Windows 查找txt后缀 文件复制
Windows 查找文件 并且复制目录 for /f "delims==" %a in ('dir /b /s F:\F\*.TXT')do copy /-y "%a&q ...
- Arch Linux 记录
2017.1.8 开始花了两天装 Arch Linux,因为是第一次安装 Arch Linux,所以过程中遇到许多问题,特记录如下. 安装过程及遇到的问题: 下载镜像,刻盘. 重启进入 LiveCD ...
- 多个Fragment在一个activity中通过按钮的展示方法
fragment使用方法 1. 创建主Mainactivity extends AppCompatActivity 2. Oncreate & setContentView 3. 完成XML的 ...
- GDAL create kml
新增kml 点 public void WriteKmlPiont() { string driverName = "KML"; //MapInfo File OSGeo.GDAL ...
- tensorflow 莫烦教程
1,感谢莫烦 2,第一个实例:用tf拟合线性函数 import tensorflow as tf import numpy as np # create data x_data = np.random ...
- JMM以及并发三大特性介绍(包括解决方案)
JMM结构图: JMM对同步的8种操作: JMM的同步规则: Countdownlatch介绍: 该类功能是可以阻塞线程,并在保证线程满足特定条件下,继续执行.如上图,Countdownlatch的c ...
- c++入门篇八
构造函数的调用规则: 系统会提供三个函数,一个是默认的构造函数(无参,函数体为空),一个是拷贝构造函数(无参,函数体为空),一个是析构函数,对类中非静态成员属性简单值拷贝\如果用户定义了拷贝构造函数, ...
- org/eclipse/jetty/server/Handler : Unsupported major.minor version 52.0
注:本文来源于<org/eclipse/jetty/server/Handler : Unsupported major.minor version 52.0> Exception in ...