【Linux知识点总结:Shell编程】

第四章 Linux Shell程序设计

【shell概述】

1、shell是Linux系统的重要层次,它是用户与系统交互的界面,shell不仅作为命令解释程序使用,还是一种高级程序设计语言,利用shell程序设计语言可以编写功能很强且代码。

2、shell的特点:

①对已有命令进行适当组合为新的命令。

②提供文件名拓展字符(通配符:*,?,[  ])。

③可以直接使用shell内置命令。

④灵活的使用数据流。

⑤结构化的程序模块,提供顺序、条件、循环等控制流程。

⑥提供在后台执行命令的能力。

3、shell特殊字符:

通配符:

(*):匹配任意字符的出现。但应注意,文件名前面的圆点(.)和路径名中的斜线(/)必须显式匹配。

例如:*file.profile(×).*file .profile(√)/etc*.c(×)/etc/*.c(√)

(?): 匹配任意一个字符。

([  ]): 匹配括号中所限定的任意一个字符。

例如:f[abcd]可以匹配fa、fb、fc、fd (也可写为f[a-d])

(!): 表示不在方括号中所列出的字符。

例如:f[!1-9]表示以f开头,后面字符不是数字1~9的文件名。

5、shell变量:

①变量名:变量名是以字母或下划线开头的字母、数字和下划线,并且大小写意义不同。

②变量赋值:变量名=字符串

注意:赋值号两边不能有空格,在赋给变量的值中含有空格、制表符或换行符应该用双引号把这个字符串括起来。(name="zhang xin"

③引用变量值:shell使用变量的值时,要在变量名前加上$符号。(echo $file)

④删除用户变量:变量名=null(unset 变量名)

4、数值判断操作符:

①-eq(等于): num1 -eq num2    num1和num2相等

②-ne(不等于): num1 -ne num2    num1和num2不相等

③-gt(大于): num1 -gt num2    num1大于num2

④-ge(大于等于): num1 -ge num2    num1大于等于num2

⑤-lt(小于): num1 -lt num2    num1小于num2

⑥-le(小于等于): num1 -le num2    num1小于等于num2


5、shell程序设计题:

例如:进行100+300+50的运算,将结果存入数值变量sum中:

a=100 b=300 c=50

let sum=a+b+c

echo "100+200+300=$sum"

5、控制结构:
①if......then......fi结构:
if  [ 条件 ]
then
fi
说明:if语句以fi结尾,条件外面的花括号不可少,条件前后必须加空格。

②if......then......else结构:
if  [ 条件 ]
then 命令
else
fi

③if.....then......elif结构:
if [条件1]
then 命令1
elif [条件2]
then 命令2
...
else 命令N
fi

举例:
使用if-then-elif结构实现下面的功能:执行脚本e4,输入的命令行第一个参数是hello时,程序显示结果为"hello! how are you?";否则如果第一个参数为空时,程序显示结果为"you must input parameters";其他情况时显示"The only accept parameter is hello":

#!/bin/bash
#e4
if ["$1"="hello"]
then
echo "hello! how are you?"
elif ["$1"=""]
echo "you must input parameters"
else
echo "The only accept parameters is hello"
fi

④while循环结构:
while [条件]
do 命令
done

⑤until循环结构:
until [条件]
do
命令
done
说明:until循环与while循环类似,不同的是until在循环条件为假时执行循环体。

⑥case语句结构:
case 字符串 in
模式字符串1命令; ;
模式字符串2命令; ;
模式字符串n命令; ;
esac

说明:
case语句以关键字case开头并以esac作为结尾,每个模式字符串后可以跟多条命令,最后一条必须以两个分号结束。

 ⑦break与continue
说明:break与continue在循环结构中可以产生中断,break可以结束整个循环,接着执行break之后的语句。continue命令可以结束当次循环然后转入循环控制条件开始新的循环。




你可能感兴趣的:(【Linux知识点总结:Shell编程】)