1.脚本格式
脚本以#!/bin/bash开头(指定解析器)
2.变量
$n (功能描述:n为数字,$0代表该脚本名称,$1-$9代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如${10})
$# (功能描述:获取所有输入参数个数,常用于循环)
 $* (功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)
 $@ (功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)
$? (功能描述:最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。)
3.运算符
(1)“$((运算式))”或“$[运算式]”
(2)expr + , - , *, /, % 加,减,乘,除,取余
注意:expr运算符间要有空格
4.条件判断
 常用判断条件
(1)两个整数之间比较
= 字符串比较
-lt 小于(less than) -le 小于等于(less equal)
-eq 等于(equal) -gt 大于(greater than)
-ge 大于等于(greater equal) -ne 不等于(Not equal)
(2)按照文件权限进行判断
-r 有读的权限(read) -w 有写的权限(write)
-x 有执行的权限(execute)
(3)按照文件类型进行判断
-f 文件存在并且是一个常规的文件(file)
-e 文件存在(existence) -d 文件存在并是一个目录(directory)
(4)多条件判断(&& 表示前一条命令执行成功时,才执行后一条命令,|| 表示上一条命令执行失败后,才执行下一条命令)
5.流程控制
1.基本语法 if对的结束是fi case的是esac do的是done
if [ 条件判断式 ];then 
 程序 
fi 
或者 
if [ 条件判断式 ] 
 then 
 程序 
elif [ 条件判断式 ]
 then
 程序
else
 程序
fi
 注意事项:
(1)[ 条件判断式 ],中括号和条件判断式之间必须有空格
(2)if后要有空格
for (( 初始值;循环控制条件;变量变化 )) 
 do 
 程序 
 done
for 变量 in 值1 值2 值3… 
 do 
 程序 
 done
while [ 条件判断式 ] 
 do 
 程序
 done
5.shell工具
cut 剪切
示例
切割cut.txt第一列
cut -d " " -f 1 cut.txt 
sed 编辑文件 用于增删改查
示例 sed '/wo/d' sed.txt 删除带wo的行
awk 把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行分析处理。 切开来分析
sort 文件排序