——《Linux就该这么学》笔记
Shell脚本命令的工做方式有两种
交互式: 用户每输入一条命令就当即执行
批处理: 由用户事先编写好一个完整的Shell脚本,Shell会一次性执行脚本中诸多的命令bash
一个简单的脚本(hello.sh)
#!/bin/bash
#一个简单的脚本
pwd
echo "Hello,World"测试
解释:
第一行: #! 用来告诉系统使用那种Shell解释器来执行该脚本
第二行: # 注释
第3、四行: 可执行的Linux命令crontab
Linux中对文件扩展名没有要求,可是Shell脚本通常使用.sh后缀字符串
脚本执行方式
1. bash 脚本名.sh
2. ./脚本名.sh (须要增长执行权限)变量
接收用户的参数
Shell脚本使用$接收参数的变量,变量之间可使用空格间隔
$n(n不能为0): 对应着第n个位置的参数值
固定值参数
$0: 对应当前Shell脚本程序的名称
$#: 总共有几个参数
$*: 全部位置的参数值
$?: 显示上一次命令的执行返回值扩展
判断用户的参数
测试语句格式: [ 条件表达式 ]
注意: 条件表达式两边均应有一个空格
条件测试语句分为4中:
文件测试语句
逻辑测试语句
整数值比较语句
字符串比较语句
文件测试语句即便用指定条件来判断文件是否存在或权限是否知足等状况的运算符,参数以下:
-d: 测试文件是否为目录类型
-e: 测试文件是否存在
-f: 判断是否为通常文件
-r: 测试当前用户是否有权限读取
-w: 测试当前用户是否有权限写入
-x: 测试当前用户是否有权限执行
文件测试语句返回值为0表示为真,非0表示为假
逻辑测试语句用于对测试结果进行逻辑分析,根据测试结果可实现不一样的效果,有三种表示:
"与"运算符: &&
"或"运算符: ||
"非"运算符: !
整数值比较语句,只能对数字操做,不能将数字与字符串、文件等内容一块儿操做,运算符以下:
-eq: 是否相等
-ne: 是否不等于
-gt: 是否大于
-lt: 是否小于
-le: 是否等于或者小于
-ge: 是否大于或者等于
整数值比较语句返回值为0表示为真,非0表示为假
字符串比较语句,用于判断测试字符串是否为空值,或者两个字符串是否相同,运算符以下:
=: 比较字符串内容是否相同
!=: 比较字符串内容是否不一样
-z: 判断字符串内容是否为空
字符串比较语句返回值为0表示为真,非0表示为假循环
流程控制语句
if条件测试语句
分为单分支结构、双分支结构、多分支结构
单分支结构
if 条件测试操做
then 命令序列
fi
双分支机构
if 条件测试操做
then 命令序列1
else 命令序列2
fi
多分支结构
if 条件测试操做1
then 命令序列1
elif 条件测试操做2
then 命令序列2
..........
else 命令序列n
fi权限
for条件循环语句
容许脚本一次性读取多个信息,而后逐一对信息进行操做处理
语法格式
for 变量名 in 取值列表
do
命令序列
done
for条件循环语句适用于循环次数肯定的状况语法
while条件循环语句
是一种让脚本根据某些条件来重复执行命令的语句,每每用来执行不肯定最终执行次数的循环
语法格式
while 条件测试操做
do
命令序列
done程序
case条件测试语句
在多个范围内匹配数据,若匹配成功则执行相关命令并结束整个条件测试,若是数据不在所列出的范围内,则会去执行星号(*)中所定义的默认命令
case语法格式
case 变量值 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
.........
*)
默认命令序列
esac
计划任务服务程序 计划任务分为一次性计划任务与长期性计划任务 一次性计划任务只执行一次,通常用于临时的工做需求 设置一次性计划任务命令: at 格式: at 时间 取消一次性计划任务命令: atrm 格式: atrm 任务序号 可使用 at -l 命令查看计划任务列表 长期性计划任务是指周期性地、有规律地执行某些具体的任务 建立、编辑计划任务的命令: crontab -e 查看计划任务列表的命令: crontab -l 删除计划任务的命令: crontab -r crontab命令: 分 时 日 月 星期 命令 有些时间字段没有设置,可使用星号(*)占位 参数字段说明 分: 取值为0-59的整数 时: 取值为0-23的任意整数 日: 取值为1-31的任意整数 月: 取值为1-12的任意整数 星期: 取值为0-7的任意整数,其中0与7均为星期日 命令: 要执行的命令或程序脚本 时间和命令之间使用空格间隔 用逗号(,)来分别表示多个时间段 用减号(-)来表示一段连续的时间周期 用除号(/)来表示执行任务的间隔时间