Shell 脚本
下面介绍一下 Shell 脚本的常用写法
在 shell 脚本的开头,都需要有如下的开头,这行代码的主要作用是:指定默认情况之下运行脚本的解释器,
sh
#!/bin/bash
一、注释
sh
# 单行注释
sh
:<<EOF
注释内容
EOF
二、变量
sh
# 定义变量
name=''
三、字符串
字符串可以用单引号,也可以用双引号,也可以不用引号。单引号与双引号的区别:
- 单引号中的内容会原样输出,不会执行、不会取变量;
- 双引号中的内容可以执行、可以取变量;
sh
name='coding'
name1='${name}'
# 输出:${name}
echo ${name1};
name2="${name}"
# 输出:coding
echo ${name2};
# 获取字符串的长度
length=${#name};
echo ${length};
# 截取字符串
echo ${name:0:5}
四、数组
元素之间使用空格进行隔开
sh
list=(1 'coding 666' 2);
五、expr
expr 命令用来求表达式的值,格式为:
sh
expr 表达式
# 获取表达式的结果
`expr 表达式`
$(expr 表达式)
5.1 字符串表达式
sh
str='Hello world'
# 获取字符串的长度,将其保存到 strLength 变量里面
strLength=$(expr length "$str")
echo ${strLength}
# 获取指定字符串在目标字符串之中的下标
strIndex=$(expr index "${str}" l)
echo ${strIndex}
# 从指定位置开始,截取指定长度的字符串
subStr=$(expr substr "$str" 2 3)
echo ${subStr}
5.2 整数运算符
expr 支持普通的算术操作,不过请注意,对于 * / %
都需要使用 \
进行转义
sh
a=1
b=2
echo `expr $a + $b`
echo `expr $a \* $b`
echo `expr \( $a + $b \) / \( $b - $a \)`
5.3 逻辑运算符
|
: 或运算,运算两边只要有一个非 0 即可,会按照顺序返回非0的参数值,即如果左边为0,右边不为0,则返回右边
&
:与运算,运算两边都必须非0,如果两边都是非0的,返回结果实际上是第一个参数
< <= > >= !=
sh
a=1
b=0
echo `expr $a \| $b`
echo `expr $a \& $b
六、test
test 命令用来判断文件类型,以及对变量做比较,其中 0 表示真,非0 表示假。其中 test 命令用 exit code
返回结果
参数 | 意义 |
---|---|
-e | 文件是否存在 |
-f | 是否是文件 |
-d | 是否是目录 |
七、判断语句
sh
if condition
then
语句
fi