Shell:Day10
明白一点:shell脚本本身是一个工具
在写shell脚本之前,就要明白:这个功能能到底如何实现?
curl 访问文件源代码,查看网站状态;
才能通过shell(bash)所提供的逻辑关系,来串联这些语句,从而实现,脚本运维自动化;
history
重定向原理
*shell cli界面的快捷键*
ctrl+w
文件通配globbing
编程原理:二进制 程序:指令+数据+【逻辑关系】
编程语言的分类:高级语言:1、解释 2、面向 3、变量
驱动!!
Linux系统执行的命令(基础)
顺序执行
循环 for while until
分支 if case
exit break continue 函数(return)sleep
变量
echo print printf
输入 read
bash支持的默认变量
环境变量(可以直接在代码中使用 $RANDOM env set) cd - $OLDPWD $PWD
传参 $# $? $1 $2 ... $$ $0 $! esc+. !$ ...
自定义变量:
局部变量
函数(本地变量) local
数组
a=(a b c d e)
0 1 2 3 4 -- 5
a[5]=f
a[${#a[*]}]=f
echo ${a[*]}
echo ${#a[*]}
<img src="//static.firefoxchina.cn/img/201903/7_5c862cd3c194d0.png"/>
grep "^\<img[[:space:]].*\/\>$"
grep egrep fgrep
sed的子命令 s
独立的编程语言解释器;他有自己独立的语法格式;
awk的工作原理:1、取 2、分隔 3、处理
awk [option]... 'program' file ...
1、option -F -v
2、program
1、print 、 printf(占位符、修饰符(注意:不能忘记回车\n))
2、变量
内置变量:NF($NF\变量调用) (类似于bash的 环境变量)
FS OFS (cut --output-dimeter) RS ORS FNR NR ARGV ARGV FILENAME
-v
3、地址定界(pat 正则表达式)
1、空 2、NR>=10&&NR<=20 3、/pat/ 4、/pat1/,/pat2/ 5、BEGIN|END 6、pat1?pat2:pat3【?】
4、运算符
1、数值运算符:%【取余\取模】 //【取整】
随机整数: $RANDOM%100+1 -101%100
2、比较运算 > < = != >= <=
3、逻辑运算 && || !
4、赋值运算 = += 1= ++ --
5、action
6、语法
if switch while do-while for
break continue next(!控制默认循环)
if(条件语句){执行语句}
if(条件语句){执行语句}else{执行语句}
for(变量 in 列表){循环体}
列遍历的数据统计:
a
b
c
a
b
c
awk '{array[$1]++}END{for(i in array){printf "%10s出现了%10d次",i,array[i]}}' 文件名
a b c a b c
awk '/^[[:space:]]*kernel\>/{{for(i=1; i<=NF; i++){array[$i]++}}END{for(j in array){print j,array[j]}}}' 文件
awk 'program' 文件
/pat/ pattern(正则表达式) -- ^[[:space:]]*kernel\>
^ -- 以什么开头
[[:space:]] -- 空格字符
* -- 前面的字符出现任意次数
“kernel” 固定字符串
\> 锚定一定是kernel
2、语法statement {{for(i=1; i<=NF; i++){array[$i]++}}END{for(j in array){print j,array[j]}}}
1、循环 -- {for(i=1; i<=NF; i++){array[$i]++}}
循环:for
赋值:array[$i]++
2、输出 -- END{for(j in array){print j,array[j]}}
END -- 在整个默认循环结束以后,执行的语句(只执行一次)
循环 -- 索引 -- j
数组值 -- 数值
Shell:Day10的更多相关文章
- 环境变量、system(day10)
一.环境变量 bash下的环境变量. 每个进程都默认从父进程继承环境变量 bash本身就是一个程序,这个程序运行的时候,bash进程 可以定义只能之自己这个进程中使用的变量,这种变量称为自定义变量. ...
- Shell替换
如果表达式中包含特殊字符,Shell 将会进行替换.例如,在双引号中使用变量就是一种替换,转义字符也是一种替换. #!/bin/bash a= echo -e "Value of a is ...
- Shell特殊变量
$ 表示当前Shell进程的ID,即pid $echo $$ 运行结果 特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数.n 是一个数字,表示第几个参数.例如,第一个参数 ...
- shell变量
定义变量 定义变量时,变量名不加美元符号($),如: variableName="value" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样.同时,变量名 ...
- 第一个shell脚本
打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好. #!/bin/bash echo "Hello World !" &quo ...
- shell简介
Shell作为命令语言,它交互式地解释和执行用户输入的命令:作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支. shell使用的熟练程度反映了用户对U ...
- Shell碎碎念
1. 字符串如何大小写转换 str="This is a Bash Shell script." 1> tr方式 newstr=`tr '[A-Z]' '[a-z]' < ...
- MongoDB学习笔记二—Shell操作
数据类型 MongoDB在保留JSON基本键/值对特性的基础上,添加了其他一些数据类型. null null用于表示空值或者不存在的字段:{“x”:null} 布尔型 布尔类型有两个值true和fal ...
- 使用C#给Linux写Shell脚本
在这个逼格决定人格,鄙视链盛行的年头,尤其是咱们IT界,请问您今天鄙视与被鄙视的次数分别是多少?如果手中没有一点压箱的本事,那就只有看的份了.今天我们也要提升下自己的格调,学习些脑洞大开的东西,学完之 ...
随机推荐
- Linux系统系统盘扩容
在Linux学习过程中,可能会遇到根目录存储空间不足的问题,这时候如果只是新增一块硬盘并挂载到某个目录上,还需要将数据转移至新的硬盘中才能缓解存储压力.这种操作未免有些繁琐,那可不可以直接对跟目录进行 ...
- git的日常使用(补课)
使用git的一些反响 如果在github上做一个仓库来使用的话... 首先手动在github上创建一个空的仓库,默认没有任何东西的 使用git的命令 git pull 创建的github仓库地址 能把 ...
- S3C2440A特殊寄存器
S3C2440A特殊寄存器 特殊寄存器有: 输入输出端口 存储器控制器 NANDFLASH 看门狗定时器 时钟和电源管理 PWM定时器 UART USB设备 中断控制器 DMA LCD控制器 RTC ...
- 何为内存模型(JMM)?
前言 任何一门语言都有其语言规范,从逻辑上我们可划分为语法规范和语义规范,语法规范则是描述了如何通过相关语法编写可执行的程序,而语义规范则是指通过语法编写的程序所构造出的具体含义.语言只要具备存储(比 ...
- React利用Antd的Form组件实现表单功能(转载)
一.构造组件 1.表单一定会包含表单域,表单域可以是输入控件,标准表单域,标签,下拉菜单,文本域等. 这里先引用了封装的表单域 <Form.Item /> 2.使用Form.create处 ...
- Python科学计算库SymPy初探
SymPy基础应用 .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { bord ...
- 爬虫 | cnblog文章收藏排行榜(“热门文摘”)
目录 需要用的module 单页测试 批量抓取 数据保存 背景说明 因为加入cnblog不久,发现上面有很多优秀的文章. 无意中发现cnblog有整理文章的收藏排行榜,也就是热门文摘. 不过有点坑的是 ...
- CKafka如何助力腾讯课堂实现百万消息稳定互动?
疫情期间,为了保障国内学子的正常学习进度,腾讯课堂积极响应国家“停工不停学”的号召,紧急上线疫情期间专用的“老师极速版”,使广大师生足不出户,即可快速便捷的完成线上开课.面对线上课堂百万量级的互动消息 ...
- Java锁的深度化--重入锁、读写锁、乐观锁、悲观锁
Java锁 锁一般来说用作资源控制,限制资源访问,防止在并发环境下造成数据错误 锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized(重量级) 和 Reentr ...
- 从零开始学习R语言(四)——数据结构之“数组(Array)”
本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/60141207 也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/125677 ...