没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
一、基本概念
1、脚本文件命名方式
2、解释器分类
3、基本基本组成内容
4、脚本编写规范与格式说明
5、自动生成脚本的注释与配置信息
二、变量与引用
1、变量命名
2、变量类型
3、变量定义
4、常用变量
4.1 内置通配符
4.2 内置变量
4.3 自定义变量
4.4 环境变量
4.5 变量的作用域
4.5.1 全局变量
4.5.2 局部变量
4.6 位置变量
4.5.1 位置变量的左移操作
4.5.2 执行脚本父目录绝对路径的获取方式
4.7 预定义变量
4.8 脚本变量案例
4.9 $*与$@的区别
5、变量赋值与替换
5.1 变量和引号
5.2 只读变量
5.3 变量运算
5.3.1 常见运算符
5.3.2 常见运算命令
5.3.3 变量子串说明
5.3.4 操作案例
6、输入与输出
6.1 read输入
6.1.1 命令格式
6.1.2 操作案例
6.2 echo输出
6.2.1 命令格式
6.2.2 操作案例
6.2.3 结果输出到指定文件
6.2.4 引号的输出
6.2.7 彩色输出
6.2.8 在脚本中使用颜色输出
6.2.8.1 定义颜色变量
6.2.8.2 定义颜色动作
6.2.9 使用tput修改颜色
7、$( ) $(( )) $[ ] $[[ ]] ${ }的区别
7.1 $( ) 与` `命令的替换
7.2 ${ }变量替换
7.2.1 变量替换
7.2.2 变量截取
7.2.3 匹配删除
7.3 $ [ ] 与$(( )) 整数运算
三、条件测试
1、基本语法
2、表达式
2.1 条件判断表达式
2.2 字符串判断表达式
2.3 数字判断表达式
2.4 文件判断表达式
2.5 表达式中[ ]与[[ ]]的区别
2.5.1 [ ]的逻辑判断表达式
2.5.2 [[ ]]的逻辑判断表达式
四、条件判断
1、if 单分支格式
1.1 语法格式
1.2 操作案例
2、if-else 双分支格式
2.1 语法格式
2.2 操作案例
3、if-elif-else 多分支结构
3.1 语法格式
3.2 操作案例
4、( ) 和 { } 复合指令
4.1 相同点
4.2 不同点
5、exit退出程序
6、case 多条件判断语句
6.1 语句格式
6.2 操作案例
五、循环语句
1、for 循环
1.1 带列表的for循环
1.2 不带列表的for循环
1.3 类C风格的for循环
2、while 循环
2.1 循环体读取文件的三种方法
2.2 循环类型
3、嵌套循环案例
六、函数与数组
1、函数
1.1 函数定义
1.2 函数的优势
1.3 函数语法
1.4 函数调用
1.5 操作案例
1.6 函数库文件
1.7 递归函数
2、数组
2.1 数组定义
2.2 定义股关联数组
2.3 数组的赋值
2.4 数组操作
2.5 数组操作案例
七、正则表达式
1、普通字符
2、非打印字符
3、特殊字符
4、限定字符
5、常用的正则表达式
5.1 校验数字的表达式
5.2 校验字符的表达式
5.3 特殊需求表达式
八、三剑客 - Grep + Sed + Awk
1、Grep - 过滤
1.1 常用grep参数
1.2 使用方法
2、Sed - 行匹配
2.1 执行原理
2.2 常见语法
2.3 使用方法
2.3.1 地址边界的设定
2.3.2 基础编辑命令
2.3.3 扩展操作
2.3.4 命令执行案例
3、Awk - 列匹配
3.1 awk能做什么
3.2 执行原理
3.3 命令的使用
3.4 语法格式与使用
3.4.1 输出方式
3.4.1.1 print的使用格式与参数
3.4.1.2 printf的使用格式与参数
3.4.1.3 重定向操作
3.4.2 变量操作
3.4.2.1 记录变量
3.4.2.2 数据变量
3.4.2.3 自定义变量
3.4.2.4 常见操作符号
3.4.2.5 常见模式
3.4.2.6 模式类型
3.4.2.7 Action类型
3.4.2.8 控制语句
3.4.2.9 数组操作
3.4.2.10 内置函数
一、基本概念
shell又称为命令解释器,它能识别用户输入的各种命令,并传递给操作系统。它的作用类似于Windows
操作系统中的命令行,但是shell的功能远比命令行强大的多,在Unix或者localhost中,shell即是用户
交互的界面,也是控制系统的脚本语言;
1、脚本文件命名方式
脚本文件名称保持不冲突即可,基于方便使用和查阅因此相对制定了多数人使用的规范与标准,其中大
驼峰与小驼峰命名法较为实用。
大驼峰命名法: MyLastName 、 MyFirstName ...
小驼峰命名法: myLastName 、 myFirstName ...
2、解释器分类
Bourne shell :标识为sh,该shell由steve Bourne在贝尔实验室编写,在许多Unix系统中,该
shell是root用户的默认shell;
Bourne-Again shell :标识为bash,该shell是Brian Fox在1987年编写,是绝大多数localhost发
行版的默认shell;
Korn shell :标识为ksh,该shell由贝尔实验室的David Korn在二十世纪八十年代早期编写,它
完全向上兼容Bourne shell并包含了C shell的多个特性;
C shell :标识为csh,该shell由Bill Joy在BSD系统上开发,由于其语法类似于C语言,因此成为C
shell;
查看当前系统的支持的shell解释器
查看系统默认的shell解释器
3、基本基本组成内容
脚本第一行标注代码解释器路径: #!/bin/bash ;
注释:说明代码的功能,使用#标识单行注释;
可执行语句:实现代码的功能。
案例如下:
[root@localhost ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
[root@localhost ~]# echo $SHELL # 系统自带变量大多数均为大写格式,Linux系统区分大小
写
/bin/bash
4、脚本编写规范与格式说明
开头指定脚本解释器:由于版本问题,使用sh与bash的解释器可能存在差异,因此要求必须在
shell脚本第一行标识代码运行解释器。
开头加版本权限等信息:非必须要求,可以选择性添加。
脚本尽量不要用中文注释:Linux系统默认使用英文UTF-8。
多使用内部命令:例如使用绝对路径而非相对路径。
尽可能减少代码内容:代码数量与运行效果成反比例。
减少没有必要执行的命令,如下面例子中的查看: cat
代码缩进
[root@localhost ~]# vim shell.sh
#!/bin/bash # 注明代码解释器
# this is test! # 注释
echo -e "this is test txt!" # 代码功能
[root@localhost ~]# sh shell.sh
this is test txt!
#!/bin/bash
#!/bin/sh
# 其他行由#表示注释
# Data:创建日期
# Author:作者
# Mail:邮件或联系方式
# Function:实现功能
# Version:版本信息
# 过滤某个文件内的user01
[root@localhost shell]# cat /etc/passwd | grep user01
user01:x:1002:1002::/home/user01:/bin/bash
[root@localhost shell]# grep user01 /etc/passwd
user01:x:1002:1002::/home/user01:/bin/bash
# Linux系统默认缩进为8字符
[root@localhost shell]# vim UserAdd.sh
#!/bin/bash
i=1
while [ $i -le 10 ]
do
if [ $i -le 9 ]
then
username=user0$i
else
username=user$i
fi
剩余67页未读,继续阅读
资源评论
无糖可乐没有灵魂
- 粉丝: 1076
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功