1概念
2入门
执行方式
sh 绝对或者相对路径 xx.sh
3变量
系统预定义变量
$HOME
当前家目录
$PWD
当前路径的绝对路径
$USER当前用户
自定义变量
变量名称可以由字母、数字和下划线组成,但是不能以数字开头
定义变量: 变量=值
撤销变量: unset 变量声明静态变量: readonly 变量
特殊变量
$n
$1-$9 代表第一到第九个参数,
十以上的参数需要用大括号包含,${11}
$#
获取所有输入参数个数,$@
这个变量也代表命令行中所有的参数,把每个参数区分对待$?
最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;
如果这个变量的值为非0则证明上一个命令执行不正确了。
4运算符
$[运算式]
echo sum=$[1+3]
5条件判断
[ condition ]
判断条件
举例: 1是否大于22
【1 -gt 22】
echo $? 返回1
6流程控制(if 循环)
1 if
注意 else后面没有then
2 case
3 for
举例 0-100的和
输出控制台输入的所有参数
4 while循环
7读取控制台输入
8函数
系统函数
1 dirname 文件绝对路径
从给定的包含绝对路径的文件名中去除文件名,然后返回剩下的路径2 basename 路径
返回 文件名的部分
自定义函数
方法名 ()
9工具 awk cut sort
1 cut 剪为列
cut [选项参数] filename
2 awk 按行分割
awk [选项参数] ‘pattern1{action1} filename
举例:搜索a.txt文件以root关键字开头的所有行,并输出该行的第7列
awk -F: '/^root/{print $7}' a.txt
3 sort 它将文件排序按照:分割后的第三列倒序排序
sort -t : -nrk 3 sort.sh
10正则表达式
^ 匹配一行的开头
$匹配一行的末尾
。匹配任意字符一次
# 他前面的那个字符可以出现0次或多次
【】匹配范围内的字符
\ 转义 需要加上单引号
找出所有包含$的行 |grep '\$'