Shell Scripts
Shell Scripts简述
Shell Script是利用shell的功能所写的一个程序,这个程序是使用纯文本文件,将一些shell的语法指令写在里面,搭配正则表达式,管线命令与数据流重导向等功能,已达到我们所想要的处理目的。
简单的说,shell scripts有点像DOS年代的批处理文件(.bat),最简单的功能就是将许多命令汇整,写在一起,让使用者可以很轻松就实现one touch的方法处理复杂的动作。而且,shell script更提供数组,循环,条件与逻辑判断等重要的功能。
规范
1.shell script以.sh作为文件的后缀名。
2.首行内容为:#!/bin/bash,宣告此文件使用的是bash语法,这样当这个文件被执行的时候,它就能够加载bash相关的环境配置文件,并且执行bash来使得我们接下来的指令能够执行!在很多情况下,如果没有设定好这一行,那么该程序可能无法被执行,因为系统可能无法判断该程序需要用什么shell来执行。
3.出第一行的#以外,其余所有在此文件中的#都是注释,而一般,从第二行开始就是我们通常来编写文档注释的地方,以便方便日后维护工作。
养成一个好的规范,坚持在编写或修改脚本时写好文档注释,这样对后期维护的工作起着很重要的作用。
文档注释的编写规范
主要有以下内容:
1.script的功能
2.script的版本信息
3.script的作者与联系方式
4.script的版本宣告方式
5.script的历史记录
6.script内比较特殊的指令,使用【绝对路径】的方式记录下来
7.script运作时需要的环境变量预先宣告与设定
执行方式
shell script的执行方式一般有2种:
假设我们有一个helloworld.sh的脚本,在/xxx/yyy/目录下,而当前我们就在此目录下
1.一种是通过绝对路径或相对路径来执行,这需要执行者对该脚本文件有rx的权限。
/xxx/yyy/ helloworld.sh或者./helloworld.sh
2.另一种是以bash来执行的。
bash ./helloworld.sh或sh ./helloworld.sh
因为sh其实就是bash的一个链接文件
3.上处的两种执行方式都是以子Bash来执行的,如下图所示:
也就是说,以这种方式执行的脚本,当脚本执行结束后,Child Bash也停止运行,所以在Child Bash中使用的变量当脚本运行结束后就不能再使用。
而还有另一种办法来执行脚本,即source helloword.sh或者. helloword.sh,与上边的方式不同,source的方式运行的脚本是在Bash中运行的,因此,脚本运行结束后,在脚本中所使用的变量也能够继续被使用。
(这也是为什么在配置完~/.bashrc之后,如果不想重启的话可以用source ~/.bashrc来重读配置文件)
书写样例
#!/bin/bash