- shell脚本:简单的脚本实质就是一些命令的堆积;复杂的脚本是一些命令加条件判断语句的组合以达到提升效率的目的
- shell脚本格式:
声明(#!):什么解释器执行
注释(#):脚本的一些介绍信息
脚本命令
脚本文件的名称虽然可以任意,但是为了避免误以为是普通文件,建议加上.sh结尾,标识为一个脚本文件
- 接收用户的参数:
$0:获取脚本文件名称
$#:参数的总个数
$*:参数分别是
$1:数值表示第几个参数
#!/bin/bash
#这是一个参数传递的测试脚本
echo "脚本的文件名字是$0"
echo "脚本的参数一共有$#个,分别是$*"
echo "脚本的第一次参数是$1,第二个是$2"
- 文件测试语句:格式 [ 条件表达式 ];可以使用shell解释器的内设$?变量显示上一条命令执行后的返回值,返回值为0则上条语句判断正确,返回值为非0则语句判断错误
-d 判断文件是否为目录文件
-e 判断文件是否存在
-f 判断文件是否一般文件
- 逻辑测试语句:用于对前面接口进行逻辑分析
与(&&) 表示前面命令执行成功后才执行后面的命令
或(||) 表示前面命令执行失败后才执行后面的命令
非(!) 表示把条件测试的判断结果取反;测试结果正确的,则将其变成错误的
- 整数值比较语句
-eq 等于
-ne 不等于
-ge 大于等于
-gt 大于
-le 小于等于
-lt 小于
在linux中 > < =分别代表不同于比较语句,>代表标准输出重定向 <代表标准输入 =代表赋值
- 字符串比较
= 比较 字符串内容是否相同
!= 比较字符串内容是否不同
-z 判断字符串是否为空
- if条件测试语句:根据实际情况自动执行相应的命令
单分支格式:
if 条件测试操作 if 目录不存在
then 命令序列 hen 创建该目录
fi fi
双分支格式
if 条件测试操作 if 能够ping通
then 命令序列1 then 主机在线
else 命令序列2 else 主机不在线
fi fi
多分枝格式:
if 条件测试操作
then 命令序列1
elif命令序列2
then 命令序列2
else
命令序列3
fi
使用read进行值的传递,再进行多次判断进行等级的划分
- for条件循环语句:允许脚本一次性读取多个信息,然后逐一的对信息进行处理
格式:
for 变量名 in 取值列表
do
命令序列
done
- while条件测试语句:只要条件成立,无终止的执行
格式:
while 条件测试操作
do
命令序列
done
使用expr计算后面的数字传递给变量PRICE,RANDOM生成一个随机数进行%1000取余操作,定义TIMES次数变量统计猜的次数,直到猜对跳出循环
- case条件测试语句:case语句在多个范围内匹配数据,匹配成功则去执行相关命令并结束整个条件测试
格式:
case 变量名 in
格式1)
命令序列1
格式2)
命令序列2
……
格式n)
命令序列n
esac
此文章仅记录自己的一个学习过程;逆水行舟