shell编程之if语法、case语法、while语句、until语句、for语句、select语句

主要介绍shell基本语句的语法

if语句语法
1 单分支结构 (如果,那么)
if <条件测试> ;then 指令;fi
或者如下:
if <条件测试>
? then
?  指令
fi

2 双分支结构(如果,那么,否则。。。)

if <条件表达式>
? then
? 指令
else
? 指令
fi

多分支结构(如果,那么,否则如果,那么,否则。。。)

if <条件表达式>
? then
? 指令
elif <条件表达式>
? then
?  指令
else
? 指令
fi
其中elif可以有多个

case 语法

case “变量” in
?值1)
? 指令1 …
? ;;
?值 2)
? 指令 2 …
? ;;
?*)
? 指令3 …
esac

当变量值为值1 时 ,执行指令1,类推,都不符合执行最后*)的指令

while语句

while <条件表达式>
do
?指令..
done

说明:
1 while 对条件检测,如果成立执行指令,done后,又检测,如果成立,又执行一 次,直到不满足条件,停止循环
2 while ture 表示条件永远为真,会一直循环 ( while [ 1 ] 和while ture一样 )

while 循环按行读取文件的方式
方法一

exec < file
while read line
do
? 指令
done

方法二

cat file|while read line
do
? 指令
done

方法三

while read line
do
? 指令
done<file

until 语法

until <条件表达式>
do
?指令..
done

说明:会在条件不成立时,执行循环,条件成立停止

for语法

1 for 变量名 in 变量列表
do
?指令..
done

2 for ((exp1;exp2;exp3))
do
?指令..
done

说明:
for 后面双括号里是3个表达式,第一个是变量初始化,第二个为变量的范围,第三个为变量自加或自减,当第一个初始化值符合第二个变量范围时候,循环,否则,退出。

**select语句

select 变量名 [ in 菜单取值列表 ]
do
? 指令..
done

原文地址:http://blog.51cto.com/shaiyawu/2131629

时间: 2024-10-29 03:41:37

shell编程之if语法、case语法、while语句、until语句、for语句、select语句的相关文章

shell编程之case分支语句

shell编程之case分支语句 case分支语句和if的多分支语句很相似. if多分支语句一般用在有(区间范围)的地方 :例如:0-100之间. if需要判断多个不同的条件. case的分支语句用在 如果里面匹配到固定值:或某个变量存在多中取值,需要对其中的每一个取值分别执行不同的命令序列. case只是判断一个变量的不同取值. case的模式: 执行流程: 首先使用"变量值"与模式1进行比较,如果取值相同就执行模式1的命令序列1,直到遇见" ;; "后跳转到es

Shell编程之Expect免交互

Shell编程之Expect免交互 Expect概述 Expect安装 Expect基本命令 Expect执行方式 Expect案例 Expect概述 Expect Expect是建立在tcl基础上的一个工具,Expect 是用来进行自动化控制和测试的工具.主要解决shell脚本中不可交互的问题.对于大规模的linux运维很有帮助 在linux运维和开发中,我们经常需要远程登录服务器进行操作,登录的过程是一个交互的过程,可能会需要输入yes/no password等信息.为了模拟这种输入,可以使

shell编程之array

变量 : 内存空间 类型 shell编程中所有变量类型为字符类型array 数组 数组中变量叫做element (元素) ,数组中每个元素都用索引位置来标注声明数组declare -a ARRAY_NAME赋值方法1 :AA[0]=jerry赋值方法2 :br/>AA={jerry,tom,lucy}数组实例![](https://s1.51cto.com/images/blog/201907/09/d85fa8a4c0a1da0c0a4e8975ba9d285f.png?x-oss-proce

无标题文章shell编程之Expect免交互

shell编程之Expect免交互 前言 一:Expect概述 Expect是建立在tcl基础上的一个工具,Expect是用来进行自动化控制和测试的工具.主要解决shell脚本中不可交互的问题,对于大规模的linux运维很有帮助 在Linux运维和开发中,我们经常需要远程登录服务器进行操作,在登录的过程是一个交互的过程,可能会需要输入yes/no password等信息. 为了模拟这种输入,可以使用Expect脚本 二:Expect基本命令 2.1:Expect安装 系统一般不自带,需要自己安装

shell编程之if语句

目录 shell编程之if判断 1.整数比较 2.字符串比较 3.举例 1.数字比较 2.字符串比较 4.Other shell编程之if判断 1.整数比较 -eq 等于,如:if [ "$a" -eq "$b" ] -ne 不等于,如:if [ "$a" -ne "$b" ] -gt 大于,如:if [ "$a" -gt "$b" ] -ge 大于等于,如:if [ "$a&

shell编程之awk

GNU awk AWK:Aho,Weinberger,Kernighan GNU awk --> gawk#ll `which awk`    /usr/bin/awk -> gawk 报表生成器,格式化文本输出; #man awk    pattern scanning and processing language.    模式扫描和处理语言;    基本用法:    awk [option] 'program' file        program: PATTERN{ACTION ST

Shell编程之if语法练习(LNMP)全过程

大家好,我是延凯,本人原来在CSDN写作已经快一年了 都是相关Linux运维这方面的技术知识,现在搬到博客园也是我一直想的,本博客主要写Python,docker,shell等偏向开发云计算等知识点,谢谢各位,声明:(原先的CSDN也会不定时更新Linux运维等方面的知识!) #!/bin/bash # DATE:Wed Jan 17 1# [email protected]163.com #this is a yankerp # The Nginx service is being insta

shell编程之sed语法

首先插播条广告:  想要进一个文件夹去 看下面有那些文件 必须对这个文件夹有执行权限. sed p  打印对应的行  2p 打印第二行. -n  只输出经过sed 命令处理的行 看图吧 不太会擅长言语. 第二行是打印出来但是其他的也打印出来了. 同时sed  还能放在管道符号后面  ,看图 d 删除指定的行   sed "1,2d" 删除1,2行  由此可看到 第一二行不见了.但是没有真真删除原文件里面的东西.只是在输出的时候删除了. -i 操作的同时也影响了原文件   sed -i

Shell编程之case多分支语句、循环语句(for、while等)、Shell函数、Shell数组

case多分支语句 case语句的结构: 针对变量的不同取值,分别执行不同的命令列 case 变量值 in 模式1) 命令序列1 ;; 模式2) 命令序列2 ;; ..... *) 默认命令序列 esac 示例: 字符类型识别: 提示用户输入一个字符: 判断出该字符是字母.数字或者其他字符. 脚本如下: [[email protected] opt]# vim test01.sh #!/bin/bash read -p "请输入一个字符:" key case $key in [a-z]