一、Shell Scripts 介绍
1.概念:
(1)Shell脚本是包含一系列命令的文本文件
(2)Shell读取此文件并执行命令
2.应用场景:
(1) 重复性操作
(2)批量事务处理
(3)自动化运维
(4)定时任务执行
二、Shell 脚本
1.(1)编写第一个Shell脚本test.sh,在/目录下新建一个目录:mkdir gao/ ,ll 查看(gao目录下最好为空,方便后面的操作)
(2)在gao目录下:vi test.sh/ 进去编写内容
注:#!是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行
(3)运行Shell 脚本
(a)chmod +x test.sh 赋予test.sh执行权限
(b)./test.sh 执行命令,正确输出如下:
2.变量定义及使用
(1)abc=123 不需要声明变量,直接赋值
(2)aaa=$ JAVA_HOME 环境变量直接使用
(3)abc=$ {abc/‘1’/‘h’} 将1转换成h
3.展开并计算(())之间的整数表达式
a=123 b=123
((c=$ a+$ b2))
echo “c is: $ c”
4.预定义变量
$# 命令行参数或位置参数的数量
$? 最近一次执行的命令或shell脚本的出口状态
$ 表示所有的位置参数,其值是所有位置参数的值
$ $ 变量是shell脚本里面的进程ID。Shell脚本经常使用 $ $ 变量组织临时文件名,确保文件名的唯一性
5.位置变量
(1) $n:$0代表命令本身,$1-$9代表顺序参数编号,大于
10的话使用括号,如 ${10}
(2)传参20 10 ,运行结果为:
6.数值关系运算符(返回的是布尔值)
-eq 等于
-ne 不等于
-gt 大于
-lt 小于
-le 小于或等于
-ge 大于或等于
7.逻辑运算符
-a或&& 逻辑与
-o或|| 逻辑或
! 逻辑否
8.字符串运算符
= 等于
!= 不等于
-z 判断是否为空
9.文件运算符
-d 判断是否为目录
-e 判断目录或文件是否存在
-f 判断是否为文件
-r 判断文件或目录针对当前用户是否可读
-w 判断文件或目录针对当前的用户是否可写
-x 判断文件或目录针对当前的用户是否写执行
注:bash shell 脚本中的变量无法存储布尔值,boolen值只能存在判断中,条件中非空都是true
10.while 循环
11.for 循环
for((a=1;a<=5;a++))
do
…
done
12.case判断
case判断:
case 变量 in:
值1)
…
;;
值2)
…
;;
esac
13.TMOUT