shell学习笔记
1.变量直接赋值和间接赋值
2.系统内置变量
$? 上一条命令的执行结果,如果成功值为0,否则非零
$(uid) 如果是root用户 值为0,否则非零
$(PATH) 、$(GID)
3.比较数字两种方法
1)中括号两边要有空格
4.比较字符串方法
[ STRING1 == STRING2 ] 如果2个字符串相同。 “=” may be used instead of “==” for strict POSIX compliance则为真。
[ STRING1 != STRING2 ] 如果字符串不相等则为真。
[ STRING1 < STRING2 ] 如果 “STRING1” sorts before “STRING2” lexicographically in the current locale则为真。
[ STRING1 > STRING2 ] 如果 “STRING1” sorts after “STRING2” lexicographically in the current locale则为真。
[[ $var = "dashazi" ]] && echo 1 || echo 0
变量可以用“”括起来
[[ "$var" = "dashazi" ]] && echo 1 || echo 0
匹配正则表示式
[[ $var =~ "d.s.a.i" ]] && echo 1 || echo 0
5.中括号几种常用用法
[ -z $dir ] 变量空
[ ! -z $dir ] 变量不空
[ -d $dir ] 路径存在
[ -f cat.sh ] 文件存在
[ -x cat.sh ] 有可执行权限
6.函数
7.位置变量
$0 脚本名
$1 $2 第几个参数
[email protected] 所有参数列表
$# 参数个数
在函数内部$1,$2.....等等代表的不是命令参数而是函数参数
exit 0代表执行成功,非0代表错误
8. if判断
中括号中逻辑判断
-a 与
-o 或
! 非
9. while循环与for循环
seq工具使用
seq 10 代表 1-10
seq 2 10 代表2-10
seq 2 2 10 代表2-10 间隔为2
seq 10 -1 2 代表10-2 间隔-1
10.break和continue
11.利用循环按行读取文件
for循环将空格符当做换行
12.case条件分支讲解
13.shell小技巧讲解
16.shell脚本函数库实现
在/etc/init.d/functions里也有很多函数
用 . 或者 source包含进来
17.脚本中常用计算和判断变量是否数字方法
18.利用getopts接收参数
shift n 将$1 指向的第n+1个参数
19.find批量删除文件
-type f代表文件
-type d 代表目录
-mtime +7 代表7天以前创建的文件
20.数据库分库备份