【Redhat Linux】shell 脚本

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 小于等于




posted @ 2018-05-31 15:38  caya  阅读(270)  评论(0编辑  收藏  举报