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脚本编程的主要内容,如果未能解决你的问题,请参考以下文章

用于确保在任何给定时间仅运行一个 shell 脚本的 shell 片段 [重复]

常用python日期日志获取内容循环的代码片段

Shell编程入门

shell脚本引用expect

Shell脚本切割日志

Eclipse 中的通用代码片段或模板