Shell 基础语法
解释器标识
规范的 Shell 脚本第一行会指出使用哪个程序(解释器)来执行脚本中的内容。在 Linux bash 编程中一般为:
#!/bin/bash
其中开头的 #!
(读作 shebang)又称为幻数,在执行 shell 脚本时,内核会根据其后的解释器来确定由哪个解释器来执行脚本中的内容。
注意:解释器标识这一行必须在每个脚本顶端的第一行,如果不是第一行则会被认为是脚本注释行。
实际上我们不仅可以使用 bash 解释器,还可以使用其他一些解释器,甚至是以命令开头,后面紧跟其参数。例如:
#!/bin/sh
#!/bin/bash
#!/usr/bin/awk
#!/bin/sed
#!/usr/bin/tcl
#!/usr/bin/expect
#!/usr/bin/perl
#!/usr/bin/env python
如果脚本开头没有指定解释器,那么系统会尝试用对应的解释器执行脚本。例如 bash test.sh
和 python test.py
,为避免不必要的错误,建议养成一个好习惯 —— 在脚本开头加上相应的解释器标识。
程序块
缩进
Shell 的程序块采用缩进风格编写。函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格。
与 Python 不同,Shell 脚本中对缩进没有强制要求和标准,常见的缩进有 2 个空格、4 个空格或 1 个制表符。建议采用 2 个或 4 个空格,并保证程序构造的缩进与逻辑嵌套深度一致,便于阅读即可。