shell脚本编程
Posted yingp
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本编程相关的知识,希望对你有一定的参考价值。
if语句
if条件判断语句,通常以if开头,fi结尾。也可加入else或者elif进行多条件的判断,if的表达式如下:
if(表达式) 语句1 else 语句2 fi
if语句shell脚本编程案例如下。
比较两个整数的大小,代码如下:
#!/bin/bash NUM=100 if(($NUM>4));then echo "The Num $NUM more than 4." else echo echo "The Num $NUM less than 4." fi
if常用的判断逻辑运算符详解如下:
-f:判断文件是否存在,例如if[-f filename].
-d:判断目录是否存在,例如if[-d dir].
-eq:等于,应用于整型比较,即equal.
-ne:不等于,应用于整型比较,即not equal.
-lt:小于,应用于整型比较,即letter。
-gt:大于,应用于整型比较,即greater.
-le:小于或等于,应用于整型比较。
-ge:大于或等于,应用于整型比较。
-a:双方都成立(and),用法为逻辑表达式-a逻辑表达式。
-o:单方成立(or),用法为逻辑表达式-o逻辑表达式。
-z:空字符串。
||:单方成立。
&&:双方都成立表达式。
if多个条件测试分数判断如下:
#!/bin/bash scores=$1 if[[$scores -eq 100]];then echo "very good"; elif[[$scores -gt 85]];then echo "good"; elif[[$scores -gt 60]];then echo "pass"; elif[[$scores -lt 60]];then echo "no pass"; fi
if判断括号区别
在使用if语句时,经常会使用()、(())、[ ]、[[ ]]、{}等括号,以下为几种括号简单区别对比
():用于多个命令组、命令替换、初始化数组;
(()):整数扩展、运算符、重定义变量值,算术运算比较;
[ ]:bash内部命令,“[”与test是等同的,正则字符范围、应用数组元素编号,不支持“+”、“-”、“*”、“/”数学运算符,逻辑测试使用-a、-o.
[[ ]]:bash程序语句的关键字,不是一个命令,[[ ]]结构比[ ]结构更加通用,不支持“+”、“-”、“*”、“/”数学运算符,逻辑测试使用&&、||。
{}:主要用于命令集合或者范围,比如:mkdir -p /data/201{7,8}/.
for语句循环
for语句循环主要用于对某个数据域进行循环读取,对文件进行遍历,通常用于循环某个文件或列表。其语法格式以for...do开头,done结尾。语法格式如下:
for var in(表达式) do 语句1 done
for循环语句shell脚本编程案例如下:
for循环求1~100的总和,代码如下:
#!/bin/bash j=0 for((i=1;i<=100;i++)) do j=‘expr $i + $j‘ done echo $j
While循环语句实战
while循环语句与for循环功能类似,主要用于对某个数据域进行循环读取,对文件进行遍历,通常用于循环某个文件或者列表,满足循环条件会一直循环,不满足则退出循环,其语法格式以while...do开头,done结尾。其语法格式如下:
while(表达式) do 语句1 done
while循环语句shell脚本编程案例如下:
while循环求1~100的总和:
#!/bin/bash j=0 i-1 while((i<=100)) do j=‘expr $i +$j‘ ((i++)) done echo $j
while循环逐行读取文件,代码如下:
#!/bin/bash while read line do echo $line; done</etc/hosts
case选择语句实战
case选择语句主要用于对多个选择条件进行匹配输出,通常用于脚本传递输入参数,打印出输出结果及内容,其语法格式以case...in开头,esac结尾。
其语法格式如下:
#!/bin/bash case $1 in Pattern1) 语句1 ;; Pattern2) 语句2 ;; Pattern3) 语句3 ;; esac
select选择语句
select语句一般用于选择,常用于选择菜单的创建,可以配合PS3来做打印菜单的输出信息,其语法格式以select...in do开头,done结尾,语法格式如下:
select i in(表达式) do 语句 done
以上是关于shell脚本编程的主要内容,如果未能解决你的问题,请参考以下文章