概论

shell是我们通过命令行与操作系统沟通的语言。

shell脚本可以直接在命令行中执行,也可以将一套逻辑组织成一个文件,方便复用。 AC Terminal中的命令行可以看成是一个“shell脚本在逐行执行”。

Linux中常见的shell脚本有很多种,常见的有:

  • Bourne Shell(/usr/bin/sh或/bin/sh)
  • Bourne Again Shell(/bin/bash)
  • C Shell(/usr/bin/csh)
  • K Shell(/usr/bin/ksh)
  • zsh

Linux系统中一般默认使用bash,所以接下来讲解bash中的语法。 文件开头需要写#! /bin/bash,指明bash为脚本解释器。

学习技巧

不要死记硬背,遇到含糊不清的地方,可以在AC Terminal里实际运行一遍。

脚本示例

新建一个test.sh文件,内容如下:

#! /bin/bash
echo "Hello World!"
 /```
 
## 运行方式
### 作为可执行文件
```shell
acs@9e0ebfcd82d7:~$ chmod +x test.sh  # 使脚本具有可执行权限
acs@9e0ebfcd82d7:~$ ./test.sh  # 当前路径下执行
Hello World!  # 脚本输出
acs@9e0ebfcd82d7:~$ /home/acs/test.sh  # 绝对路径下执行
Hello World!  # 脚本输出
acs@9e0ebfcd82d7:~$ ~/test.sh  # 家目录路径下执行
Hello World!  # 脚本输出

用解释器执行

  • 不需要权限
acs@9e0ebfcd82d7:~$ bash test.sh
Hello World!  # 脚本输出

空格

  • 创建一个新的 shell 变量,并在当前shell及其自shell中使用
acs@130a89181f0e:~$ name=yes  #输出yes
  • 运行一个名为 name 的命令
acs@130a89181f0e:~$ name =yes #报错 -bash: name: command not found