一、概述
// 命令行解释器,它接受应用程序/用户命令,然后调用操作系统的内核
// shell脚本文件以.sh结尾
// 文件的开头如下,用于指定解析器
#!/bin/bash
二、变量
1、系统变量
$HOME、$PWD、$SHELL、$USER
2、自定义变量
// 申明(等号两边不能有空格),值中如果有空格字符要用' '
a=1
// 使用变量
$a
// 将变量提升为全局变量
export a
3、特殊变量
$n: $0代表脚本名称、$1代表第一个参数、$2代表第二个参数
$#: 获取所有参数的的个数
$*: 获取所有参数
$@: 获取所有参数
$?: 判断上条命令是否执行正确
三、加减乘除运算
// 使用$((运算式)),或者$[运算式]
// 加:+ 减: - 乘: \* 除: /
四、条件判断
// 语法,condition两边都有空格,条件正确的值为0,条件错误的值不为0
[ condition ]
// 常用的判断
1、两整数间的比较
例如:[ 23 -ge 22 ]
-lt(小于) -le(小于等于) -eq(等于) -gt(大于) -ge(大于等于) -ne(不等于)
2、按照文件的权限进行判断
例如:[ -w aa.txt ]
-r(有读的权限) -w(有写的权限) -x(有执行的权限)
3、文件类型的判断
-f(文件存在且是个常规文件) -e(文件存在) -d(文件存在并是个目录)
4、逻辑&&和逻辑||
例如:[ condition ] && echo ok
五、流程控制
// if判断形式一
if[ condition ];then
程序
elif[ condition ];then
程序
fi
// if判断形式二
if[ condition ]
then
程序
elif[ condition ]
then
程序
fi
// case语句
case $变量名 in
'值1')
程序1
;;
'值2')
程序2
;;
*)
程序3
;;
esac
六、for循环
for((初始值;循环条件;变量变化))
do
程序
done
七、shell工具
1、cut(剪切)
例如:cut -d ' ' -f 2,3 a.txt
2、sed(流编辑器)
3、awk(文本分析工具)
4、sort(可以将文本排序)