#! 指定解析器 /bin/bash , /bin/sh
单行注释 #
多行注释
:<< COMMIT
COMMIT COMMIT 可用任何字符代替 两个COMMIT 之间为注释内容
$变量
$# 传入脚本的命令行参数个数
$*传入命令行参数值 在各个参数之间留空格
$0命令行本身(shell 文件名)
$1第一个命令行参数
$2第二个命令行参数
expr 数学运算函数
条件语句
if [ condition ]
then
commands
else
commands
fi
-eq 相等
-ne 不等
-gt 大于
-lt xiaoyu
-ge 大于或等于
-le 小于或等于
-z 为空
-n 不为空
-e 文件已经存在
-f 文件为普通文件
-s 文件大小不为0
-d 文件是一个目录
-r 文件对当前用户可以读取
-r 文件对当前用户可以写入
-x 文件对当前用户可以执行
[ ]左右需要留空格判断符两侧也要留空格
循环语句
for var in $list
do
commands
done
while [ condition ]
do
commands
done
sed (stream editor)流式编辑器 行编辑器
格式:
sed [操作选项] ‘命令’文件名
操作选项:
-n 指定处理后只显示该行
-e 进行多项编辑任务
-i 直接修改读取文件内容 而不是由屏幕输出
命令:
p 打印匹配行
a 新增
c 替代
d 删除定位行
s 替代一行中的某些部分
awk 分析器
awk'{[pattern] + action}' [filenames]
pattren 要查找的内容