Bash Script

Basic Concept

一些关于Bash和Shell的基本概念。

Bash & Shell

Shell是用户和操作系统的接口。它是一个命令解释器。Bash(Bourne Again SHell)是Shell的一个类型,由GNU开发,是对Bourne Shell(sh)的改进和扩展,同时也是当今Linux和MacOS的默认Shell。

更通俗地来说,Shell相当于Linux操作系统,而Bash则是Linux操作系统的一个发行版,如Ubuntu。

Bash Script & Shell Script

脚本(Script),也就是我们常说的解释性编程语言,常见的Python、JavaScript都是脚本语言。Bash脚本和Shell脚本都是让Shell能够执行一连串命令行指令的程序,它们的关系就类似于Bash和Shell的关系:

  • Bash脚本只能用Bash语言编写,其语法也是Bash的语法,而Shell脚本则能用任何的Shell语法编写;
  • Bash脚本的文件后缀为.sh,而Shell脚本就是一个普通的文本文件,不需要任何后缀,只要可执行即可。

无论是Bash脚本还是Shell脚本,都需要相应的Shell解释器来执行。使用cat /etc/shells能够查看本机所拥有的Shell解释器。

Execution & Comment

对于任何一个Bash脚本,编写时首先要指定其要使用的解释器:

1
#! /bin/bash

上述行指定该Bash脚本将使用解释器/bin/bash运行。运行Bash脚本时,我们可以以文件名运行,也可以以bash加文件名运行,如一个最简单的Bash脚本:

1
2
3
4
5
6
7
8
9
10
11
[zclzcl@localhost Playground]$ touch helloScript.sh
[zclzcl@localhost Playground]$ ls
helloScript.sh
[zclzcl@localhost Playground]$ vim helloScript.sh
#! /bin/bash

echo "Goodbye, world"
[zclzcl@localhost Playground]$ ./helloScript.sh
Goodbye, world
[zclzcl@localhost Playground]$ bash ./helloScript.sh
Goodbye, world

最简单的Bash脚本就是一系列Linux命令行指令的组合。此时,运行该Bash脚本相当于在当前目录下串行地运行这些指令。要想运行Bash脚本,首先要确保脚本文件是可执行的,若用户无执行脚本文件的权限,则需要用chmod +x [Script File]增加权限。

与其他编程语言一样,我们也能在脚本文件中增加注释来增强脚本文件的可读性。在Bash脚本中,单行注释用#,多行注释用: ''(引号内是注释内容)。