编写第一个shell脚本
廖家龙 用心听,不照做

shell脚本是一个包含一系列命令的文件,shell读取这个文件,然后执行这些命令,就好像这些命令是直接输入到命令行中一样;shell既是一个强大的命令行接口,也是一个脚本语言解释器,大多数能够在命令行中完成的工作都可以在脚本中完成,反之亦然。

为了成功创建和运行一个shell脚本,我们需要做三件事:
1)编写脚本:shell脚本是普通的文本文件,所以我们需要一个文本编辑器来编辑它,最好文本编辑器可以提供“语法高亮”功能,从而能够看到脚本元素彩色代码视图,“语法高亮”可以定位一些常见的错误
2)使脚本可执行:系统相当严格,它不会将任何老式的文本文件当作程序,所以我们需要将脚本文件的权限设置为允许执行
3)将脚本放置在shell能够发现的位置:当没有显式指定路径名时,shell会自动的寻找某些目录,来查找可执行文件,为了最大程度的方便,我们将脚本放置在这些目录下

文本行中,在“#”符号后面的所有内容会被忽略
“#!”字符序列是一种特殊的结构,称之为shebang,用来告知操作系统,执行后面的脚本应该使用的解释器的名字,每一个shell脚本都应该将其作为第一行

可执行权限:对于脚本,有两种常见的权限设置,权限为755的脚本,每个人都可以执行;权限为700的脚本,只有脚本的所有人才能执行,注意,为了能够执行脚本,它必须是可读的

脚本文件的位置:为了使脚本运行,我们必须显式指定脚本文件的路径

如果没有显式指定路径,则系统在查找一个可执行程序时,需要搜索一系列目录,这就是当我们在命令行中输入ls时,系统知道要执行/bin/ls的原因。/bin目录是系统会自动搜索的一个目录。

目录列表存放在名为PATH的环境变量中,这个PATH变量包含一个由冒号分隔开的待搜索目录的列表:

如果脚本位于该列表中的任何一个目录中,问题就解决了

这两个命令一样,为了减少输入,当在命令行中输入选项时,短选项更可取,但是在编写脚本时,长选项名可以提高可读性

缩进和行连接:

脚本和命令行的一个区别是,脚本可以使用制表符来实现缩进,但在命令行中,Tab键用来激活自动补齐功能