一、什么是shell脚本编程

shell脚本并不是真正的编程语言,实际上就是命令的集合,类似于windows的批处理文件

二、编写shell脚本(文件格式为.sh

1、编写一个helowrold+日期!

代码就两句,注意编写完成后,需要给文件一个执行的权限 

linux shell脚本sql server_linux

linux shell脚本sql server_不执行_02

 2、在shell中引用变量,显示现在的时间

代码:注意date +%H:%M:%S是一个整体,要用反引号` `包括起来

linux shell脚本sql server_linux_03

结果:

linux shell脚本sql server_shell脚本_04

3、简单的运算

代码:

linux shell脚本sql server_shell脚本_05

结果:

linux shell脚本sql server_反引号_06

 4、用户输入

linux shell脚本sql server_反引号_07

代码:注意空格 

linux shell脚本sql server_安全_08

 结果:

linux shell脚本sql server_反引号_09

 第二种方式

代码:

linux shell脚本sql server_shell脚本_10

 结果:

linux shell脚本sql server_linux_11

 注:$1,$2为脚本后的第一、二个选项,第0个选项为脚本自身的名字

5、if语句的使用 

语法格式:注意 [ ] 空格

if [ 条件 ];then

........命令............

fi

linux shell脚本sql server_安全_12

linux shell脚本sql server_安全_13

 

linux shell脚本sql server_linux_14

编写一个判断成绩级别的shell脚本

代码:

linux shell脚本sql server_安全_15

结果:

linux shell脚本sql server_不执行_16

6、case逻辑判断

linux shell脚本sql server_反引号_17

例子:

代码:

linux shell脚本sql server_反引号_18

效果:

linux shell脚本sql server_安全_19

注意空格,循环条件要用反引号`   `包起来) 

linux shell脚本sql server_shell脚本_20

例子:

1、代码:

linux shell脚本sql server_反引号_21

 结果:

linux shell脚本sql server_反引号_22

2、代码: `seq 1 5` 表示1到5这几个数

linux shell脚本sql server_安全_23

结果:

linux shell脚本sql server_shell脚本_24

 8、while 和 until 循环

while循环:条件要用 [ ] 包起来

linux shell脚本sql server_反引号_25

 例子:

代码:

 

linux shell脚本sql server_反引号_26

结果:

linux shell脚本sql server_反引号_27

相同的例子,用until循环写,until的语法跟while相同

linux shell脚本sql server_不执行_28

结果:

linux shell脚本sql server_安全_29

思考:为什么基本意思的代码,结果却不一样呢?

答:因为while 跟 until 不同,while是满足条件,继续循环;until是满足条件,终止循环。

9、SHELL函数

函数格式:

function 函数名()

{

        命令

}

例子:

代码:

linux shell脚本sql server_shell脚本_30

结果:

 

linux shell脚本sql server_linux_31

10、 shell中断(break和continue)

break :直接跳出循环,不执行循环里剩下的语句

示例脚本:

linux shell脚本sql server_linux_32

 结果:

linux shell脚本sql server_反引号_33

 continue:是跳出当前循环,不执行当前那次循环剩下的语句

代码:

 

linux shell脚本sql server_shell脚本_34

结果:

linux shell脚本sql server_linux_35

 exit:直接结束脚本

代码:

linux shell脚本sql server_linux_36

结果:可跟break的结果进行对比。

linux shell脚本sql server_不执行_37

 


 综合例子

一、编写shell脚本, 对1+2+3+4+5+……+100 求解

代码:

while 方法:

linux shell脚本sql server_安全_38

结果:

linux shell脚本sql server_shell脚本_39

 

until方法:

linux shell脚本sql server_linux_40

for方法:

linux shell脚本sql server_反引号_41

  

二、编写shell脚本,输入数字n,计算1~n的和,如果n<1,则重新输入,直到输入正确为止

linux shell脚本sql server_不执行_42

 

linux shell脚本sql server_shell脚本_43

标准答案:

linux shell脚本sql server_不执行_44

 

三、编写shell脚本,将/root目录下的所有目录(包含文件)复制到/tmp目录下

linux shell脚本sql server_不执行_45

结果:

linux shell脚本sql server_shell脚本_46

linux shell脚本sql server_安全_47

标准答案:

linux shell脚本sql server_反引号_48