SHELL SCRIPT
【一 变量】
PART1 为何要有变量
程序的运行就是一些列状态的变量-》用变量的值变化去表示
PART2 变量命名规则
以字母或下划线开头,剩下的部分可以是:字母、数字、下划线
最好遵循以下规则
1.以字母开头
2.使用中划线或者下划线做单词的连接
3同类型的用数字区分
4对于文件最好加上拓展名
例如:sql_bak.tar.gz,log_bak.tar.baz2
PART3 系统变量
set 和 env 区别
set:显示所有变量
env:环境变量
PART4 变量赋值
VARNAME=VALUE
echo $VARNAME
删除变量 unset VARNAME
PART5 常用系统变量
PATH
PWD
LANG
HOME
HISTSIZE
PS1
IFS
域分隔符是 空格、换行,TAB键的合集
PART6 全局变量与局部变量
子bash可以继承到父bash的变量,反过来不可以
定义变量名的边界
rest_mem20
echo ${rest_mem}%
输出:20%
PART7 数据类型
bash的变量无须声明,拿来就用默认的变量都是字符型
【二 关系运算】
运算符
+ - * / %
关系操作符
< > <= >= == != && ||
赋值运算符
= += *= /= %=
shell里的计算器
$[](()) $(()) expr bc -l
浮点运算 :yum install bc -y
echo 'scale=2;1/3'|bc -l
输出:.33
【测试操作】
命令执行后会返回到一个系统变量中$?
如果$?值为0表示命令成功,否则为失败
测试命令 test[][[]](())
打开man test 逐一介绍每个参数
测试文件状态
test [option] <address>
-f 是普通文件?
-d 目录文件?
-b block?
-h 链接文件?
-e 是否分件
-s 文件存在并且非空
-w 可写?
-r 可读?
-x 可执行?
字符串测试
= 两个字符串相等
!= 两个字符串不相等
-z 空串
-n 非空串
测试数值
-eq 等于
-ne 不等于
-gt 大于
-lt 小于
-ge 大于等于
-le 小于等于