shell脚本
- 脚本以.sh结尾
- 注释用 # 开头。好的注释可以提高脚本的可维护性。
- 每个 Shell 脚本的开头应有 Shebang 指令,用于指定脚本运行的解释器。通常是 #!/bin/bash 或 #!/bin/sh,具体取决于你使用的 Shell 类型。
- 执行脚本
bash script.sh //明确知道你的脚本需要 bash
./script.sh //当你在脚本的第一行定义了正确的 Shebang(如 #!/bin/bash 或 #!/bin/sh),并且脚本具有执行权限时,你可以直接运行脚本。
1.运算指令
shell脚本中的变量都是字符串,如果要进行算术运算(5-3)的操作,需要使用算术运算指令实现
a.运算指令
(1). (())
书写格式与C语言差不多,格式不严格
运算表达式中变量存储的必须是整数形式的字符串,不然会报错,也就是a=4,而不是a='w'这种。
((a=1+2)) //a=$((1+2))
((c=$a+$b)) //c=$(($a+$b)),引用a+b的结果,但是(())中的变量引用可以不加符号,即等同于((c=a+b))
(2).let
let 变量=算术表达式 //中间不允许有空格
let a=1+2
let c=a+b //let c=$a+$b 右值当中可以不加$引用变量。
(3).$[]
$[] 自带一个引用,所以它的运行结果不能单独占用一行,必须要有变量接收或者echo打印。里面的表达式可以不加$,也可以有空格。
(4).expr
可以做算术运算,但格式严整,一般不用。
一般适合于字符串的运算
expr $字符串1 : $字符串2 //比较字符串和字符串2是否相同并显示到终端,不同为0,相同则返回相同字符的个数
expr match $字符串1 字符串2 //同上
expr substr $字符串 下标 长度 //从字符串的下标位置(从1开始)获取指定长度的字串
expr substr $str 2 3
expr index $字符串 字符 //从字符串中查找指定字符所在下标的最小位置,(下标从1开始),如果找不到则返回0
expr index "www.baidu.com" "baidu"
expr length $字符串 //获取字符串的长度
2.变量的正确使用
- 定义变量时不要加空格: 定义变量时,变量名和等号之间不要有空格
varname="value"//true
varname = "value"//false
- 引用变量时加引号