一、测试语句与运算符
(1)条件测试语句
两边均有空格,条件测试语句不能配合管道符。
操作符 | 作用 |
---|---|
-d | 判断目录 |
-f | 判断文件 |
-e | 判断是否存在 |
-r | 是否有权限读取 |
-w | 是否有权限写入 |
-x | 是否有权限执行 |
例如:(1在这代表不存在,0存在)
1>查看aaa目录是否存在
2>查看文件bb是否存在
(2)逻辑测试语句参数
返回0成功,反之失败
与&& | 当前面的命令执行成功后才会执行后面的命令; |
---|---|
或 | 当前面的命令执行失败后才会执行后面的命令; |
非! | 条件测试中的判断结果取反; |
(3)用于整数的运算符
-eq | 是否等于 |
---|---|
-ne | 是否不等于 |
-gt | 是否大于 |
-It | 是否小于 |
-le | 等于或小于 |
-ge | 等于或大于 |
例如:
二、流程控制语句
(1)单分支:if(判断条件)…then(命令)…fi
创建目录
/etc/jw在etc目录下创建一个子目录赋予一个WJ变量
if判断jw此目录是否存在
不存在则用mkdir命令创建
(2)双分支:if(判断条件)…then(命令1)…else(命令2)…fi
查看主机是否在线,如果$?的结果等于零则主机在线并显示host online,否则not online。
-i | 每个数据包发送的间隔 |
---|---|
-c | 尝试次数 |
-w | 等待超时的时间 |
/dev/null | 称作Linux黑洞的文件,把输出重定向到这个文件等同于删除数据,让用户的屏幕窗口保持简洁。 |
(3)多分支:if…then…elif…then…else…fi
read -p用来提示信息并读取;
if中首先判断输入的数值是否在1~100之间,不在范围内输出非法治输入
在范围内判断数字在哪个范围内然后输出对应的值;
for循环 允许脚本一次性读取多个信息,然后逐一对信息进行处理。
useradd添加用户
for 变量名 in 取值列表
do
命令序列
done
下面是创建用户一个小脚本,user.txt文本是需要创建的用户名
while循环 若条件为真就继续执行,反之跳出循环。
while条件测试操作
do
命令序列
done
case语句
case 变量值 in
[a-z]|[A-Z])
提示为字母
;;
[0-9])
提示为数字
;;
*)
提示为特殊字符
esac结束
![e_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NlbGZfZGlzY2lwbGluZTk=,size_16,color_FFFFFF,t_70#pic_center)
三、计划任务服务程序(一次性与长期性)
(1)at命令(一次性)
语法:at [时间]/[参数]
at>命令
写法 | 作用 |
---|---|
-l | 查看已设置未执行 |
atrm+编号 | 删除对应的计划任务 |
ctrl+D | 退出设置 |
(2)crontab命令(长期性)
crontab -e创建任务
1> 30 23 * 9 2,4,6代表时间九月份每个星期二,四,六的23时30分
2> /usr/bin/tar绝对路径,通过-czvf压缩成beckup.tar.gz压缩包保存在/home/wwwroot里
(1)分 时 日 月 星期 命令,如果有些字段没有设置,则使用星号*占位
(2)日和星期字段不能够同时使用,否则会引起冲突
(3)*/1在分的位置是每分执行一次,小时的话每小时执行一次…
(4)whereis 命令 用来查询绝对路径
-e | 创建或编辑任务 |
---|---|
-r | 删除 |
-u | 编辑对应用户的计划任务(管理员身份才能用) |
-l | 查看计划 |
分 | 范围0~59 |
时 | 0~23 |
日 | 1~31 |
月 | 1~12 |
星期 | 0~7 0和7都为星期天 |
# | 编辑时候用于注释 |