在编写脚本的同时,我们不仅要让功能实现,也要让使用者能看懂我们写的脚本。所以要在必要的地方加上注释。
注释
在bash
中除了第一行的"shebang"
,其余的行如果有#
号开头的行,解释器都会忽略这些行,因为这些行都被视为是代码的注释信息。
bash
中没有多行注释,只能每行加一个#
号。
像这样:
如果在开发过程中,遇到大段的代码需要临时注释起来,过一会儿又取消注释,怎么办呢?
每一行加一个#
号太费劲了,可以把这一段要注释的代码用一对花括号括起来,定义成一个函数,不调用这个函数,这样我们就实现了 “多行注释” 的效果。
我们可以在执行shell
脚本时,向脚本传递参数,脚本内获取参数的格式为:$n
n 代表一个数字,1 为执行脚本的第一个参数, 2 为执行脚本的第二个参数,以此类推…
实例:
以下实例,我们将向脚本传递 2 个参数,并分别输出,注意 $0
是脚本本身:
|
|
执行脚本前,需要给脚本授予执行权限。
另外,还有几个特殊字符用来处理参数:
|
|
执行脚本,输出结果如下所示:
* 与 @ 的区别:
- 相同点:都是引用所有参数。
- 不同点:只有在双引号中体现出。
假设在脚本运行时写了三个参数 1、2、3,则 * 表示“1 2 3”(相当于传递了一个参数),而 @ 表示 “1” “2” “3”(传递了三个参数)
|
|
执行脚本,输出结果如下所示:
Shell 和其他编程语言一样,支持多种运算符,包括:
- 算数运算符
- 关系运算符
- 布尔运算符
- 字符串运算符
- 文件测试运算符
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。
expr 是一款表达式计算工具,使用它能完成表达式的求值操作。
例如,两个数相加(特别注意:使用的是反引号 ` 而不是单引号 ‘):
|
|
执行脚本,输出结果如下:
|
|
这里要注意两点:
- 表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多编程语言不一样。
- 完整的表达式要被 反引号 包含,注意这个字符不是常用的单引号,在
ESC
键的下面。
算数运算符
下面列出了常用的算数运算符,假定变量 a 为 10,变量 b 为 20:
|
|
注意:条件表达式要放在方括号之间,并且要有空格,例如: [$a==$b]
是错误的,必须写成[ $a == $b ]
实例:
|
|
执行脚本,输出结果如下:
注意:
- 乘号前面必须加反斜杠才能实现乘法运算
- if..then..fi是条件判断语句
关系运算符
关系运算符只支持数字,不支持字符串,除非字符串的值是数字。
下面列出了常用的关系运算符,我们假定变量 a 为 10,变量 b 为 20.
|
|
实例
|
|
执行脚本,输出结果如下:
布尔运算符
下面列出了常用的布尔运算符,我们假定变量 a 为 10,变量 b 为 20
|
|
实例
|
|
执行脚本,输出结果如下:
逻辑运算符
以下介绍shell的逻辑运算符,假定变量 a 为 10,变量 b 为 20:
|
|
实例
|
|
执行脚本,输出结果如下:
字符串运算符
下面列出了常用的字符串运算符,假定变量 a 为 “abc”, 变量 b 为 “efg”:
|
|
实例
|
|
执行脚本,输出结果如下:
文件测试运算符
文件测试是用于检测 Linux文件的各种属性
属性检测描述如下:
|
|
实例
|
|
执行脚本,输出结果如下:
本文出自Maxie’s Notes博客,转载请务必保留此出处。