当前位置:网站首页>Shell 脚本 快速入门到实战 -02
Shell 脚本 快速入门到实战 -02
2022-07-31 18:47:00 【51CTO】
7 流程控制 (重点)
7.1 case 语句
7.2 case语句
7.3 for 循环
7.4 while循环
8 read 读取控制台输入
9 函数
9.1 系统函数
9.2 自定义函数
10 Shell 工具(重点)
10.1 cut
10.2 sed
10.3 awk
11 企业真实面试题
11.1 京东
11.2 搜狐&和讯网
11.3 新浪
11.4 金和网络
7 流程控制 (重点)
7.1 case 语句
- 基本语法
- 注意:
- [ 条件判断式 ],中括号和条件判断式之间必须有空格
- if后要有空格
- 实例
7.2 case语句
- 基本语法:可以类比java的switch case break deflaut那一套
- 案例
- 输入一个数字,如果是1,则输出banzhang,如果是2,则输出fubanzhang,如果是其他,则输出同学
7.3 for 循环
- 基本语法:可以类比java的for循环,把括号改成do,done
- 案例
- 从1加到100
- 第二种for语法:适用于离散的值
- 案例
打印输入的所有参数
加个“”就不同了
7.4 while循环
- 基本语法
- 实例
- 1+100
8 read 读取控制台输入
- 基本语法
- 实例
- 提示7 秒内,读控制台输入的名称
9 函数
9.1 系统函数
- basename基本语法
- 选项:suffix为后缀,如果suffix被指定了,basename会将pathname去掉suffix
- 功能
- 删除所有的后缀包括最后一个(‘/’)字符,然后将字符串显示出来
- 干嘛用的啊:获取路径或者文件名称之后,可以赋值给到变量,做更多后续操作,实现自动化
- 实例
- dirname 基本语法
功能:从给定的包含绝对路径的文件名中出去文件名(非目录的部分),然后返回剩下的路径(目录的部分)
使用:basename和dirname一起使用
- 实例
9.2 自定义函数
- 基本语法
- 注意点:
- 必须在调用函数地方之前,先声明函数.shell脚本只会逐行运行。
- 函数反馈值,只能通过$?系统变量获得,可以显示加return,如果不加,就以最后一条命令运行结果,作为返回值。
- 实例
- 计算两个输入参数的和
10 Shell 工具(重点)
10.1 cut
- 功能:剪,具体说就是在文件中负责剪数据用的。剪了是为了方便输出
- 基本用法:
- 实例
- 把第一列取出来
- 取一下第2,3列
- 只要一个广(guang)字呢
- 选取系统PATH变量值,第五个":"开始后的所有路径
- 切个ip地址玩玩
eth0的ip的cut过程
10.2 sed
- 功能:sed是一种流编辑器,它一次处理一行内容。当前处理的一行存储在临时缓冲区中,称为“模式空间”,处理好后再推送屏幕。
- 基本语法
- 选项参数说明
-e:直接在命令列模式进行sed的动作编辑
- 命令功能描述
a:新增,后面跟字串,在下一行出现
d:删除
s:查找并替换
- 案例
- 将”believe“这个单词插入到sed.txt第二行下,并打印,但是原来的文件没有变
- 删除sed.txt中所有包含wo的行
- 将sed.txt中的wo替换成ni
- 将sed.txt文件中的第二行删除并将我替换成ni
10.3 awk
正则表达式内容补充: (73条消息) 正则表达式全解析+常用示例_墨遥的博客-CSDN博客_正则表达式行尾
正则表达式测试网站Regex101的使用方法: 正则表达式测试网站Regex101的使用方法 - 知乎 (zhihu.com)
用再去查,不行再学: 【韩顺平讲Java】Java 正则表达式专题 -正则 正则表达式 元字符 限定符 Pattern Matcher 分组 捕获 反向引用等_哔哩哔哩_bilibili
功能:一个强大的文本分析工具,把文件逐行的读入,以空格为默认分隔符将每行切片, 切开的部分在进行分析处理
基本语法
pattern:表示AWK在数据中查找的内容,匹配模式,相当于正则匹配
action:在找到匹配内容时所执行的命令
- 选项参数说明
-F:指定输入文件分隔符 F大写
-v:赋值一个用户定义变量 v小写
内置变量
FILENAME:文件名
NR:已读的记录数
NF:浏览记录的域的个数
- 案例
- 搜索passwd文件以root关键字开头的所有行,并输出改行的第7列
- /^正则开头
- 搜索passwd文件以root关键字开头的所有行,并输出改行的第1列和第7列,中间以”,“号分割
- 显示passwd文件的第1列和第7列,以逗号分隔, 且在所有行前面添加列名user,shell在最后一行添加”fenfen,/bin/zuibang“
- 将passwd文件中的用户id增加1并输出
- 内置变量:统计passwd文件名,每行的行号,每行的列数
- 切割ip
eth0版本
- 查询sed .txt中空行所在的行号
- /^$正则:开头结尾没有内容就是空格
10.4 sort
- 功能:sort命令在Linux中非常有用,他将文件进行排序,并将排序结果输出
- 基本语法
- 实例
- 按照第二列数值进行排序
11 企业真实面试题
11.1 京东
- 使用Linux命令查询file1中空行所在的行号
- 有文件chengji.txt内容如下
张三 40
李四 50
王五 60
使用Linux命令计算第二列的和并输出
11.2 搜狐&和讯网
- Shell脚本中如何检查一个文件是否存在?如果不存在改如何处理
11.3 新浪
- 问题:用Shell写一个脚本,对文本无序的一列数字排序并累加求和
11.4 金和网络
- 问题:请用shell脚本写出查找当前文件夹(/home)下所有的文本文件内容中包含有字符”shen“的文件名称
边栏推荐
- Unity 之 音频类型和编码格式介绍
- Flex布局详解
- 最后写入胜利(丢弃并发写入)
- 保证接口数据安全的10种方式
- iNeuOS工业互联网操作系统,设备运维业务和“低代码”表单开发工具
- The article you worked so hard to write may not be your original
- API for JD.com to obtain historical price information of commodities
- ResNet的基础:残差块的原理
- MySQL---聚合函数
- MySQL---Create and manage databases and data tables
猜你喜欢
MySQL---operator
Automated testing - web automation - first acquaintance with selenium
go mode tidy出现报错go warning “all“ matched no packages
学生管理系统第一天:完成登录退出操作逻辑 PyQt5 + MySQL5.8
iNeuOS工业互联网操作系统,设备运维业务和“低代码”表单开发工具
A common method and the use of selenium
Golang——从入门到放弃
IP protocol from 0 to 1
[Network Communication 3] Advantech Gateway Modbus Service Settings
21.支持向量机—核函数的介绍
随机推荐
基于WPF重复造轮子,写一款数据库文档管理工具(一)
Given an ip address, how does the subnet mask calculate the network number (how to get the ip address and subnet mask)
This 985 professor is on fire!After 10 years of Ph.D. supervisor, no one has graduated with a Ph.D.!
UVM RAL模型和内置seq
35 MySQL interview questions and diagrams, this is also easy to understand
MySQL---Subqueries
TestCafe总结
Golang——从入门到放弃
华为手机一键开启“维修模式”隐藏所有数据,让手机隐私更加安全
全平台GPU通用AI视频补帧超分教程
MySQL---创建和管理数据库和数据表
MySQL---聚合函数
useragent在线查找
程序员如何学习开源项目,这篇文章告诉你
多线程之锁
iNeuOS工业互联网操作系统,设备运维业务和“低代码”表单开发工具
matplotlib ax bar color 设置ax bar的颜色、 透明度、label legend
Go1.18升级功能 - 模糊测试Fuzz 从零开始Go语言
leetcode:6135. 图中的最长环【内向基环树 + 最长环板子 + 时间戳】
【NLP】什么是模型的记忆力!