- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
shell2_数学运算、数组等
Shell脚本编程;第2章 数学运算、数组、文本处理 ;根据下列脚本分析显示结果
;数学运算
数组的使用
seq 、tr 、sort、uniq、cut等命令;常用运算符
加法运算:+
减法运算: -
乘法运算: *
除法运算: /
求模(取余)运算: %
求幂运算:** ;常用整数运算
第一种
declare -i a=10*20;echo $a 少用
第二种
a=$(expr 10 ‘*’ 20);echo $a 少用
第三种
a=$[10*2]; echo $a []中的变量无需加$
echo $[ RANDOM % 10 ],求0-9的随机数
第四种
a=$((10*20));echo $a $(())中的变量无需加$
echo $(( RANDOM % 10 )) 求0-9的随机数;常用整数运算
第五种 (推荐)
((a=10*20));echo $a 常用来赋值
((a++)) (())中的变量无需加$
((a+=10))
第六种
let a=10*20;echo $a 常用来赋值
let i++
let i+=10
;双圆括号整数值比较(推荐方法)
格式(( 整数1 操作符 整数2 ))
==、、、!=、=、=
;脚本案例;bash只支持整数的运算, 浮点数运算用bc
;脚本提示输入任意的数字,然后显示如下结果;脚本接受输入两个整数,然后自动显示显示结果如下;脚本实现显示现在离放学还有多少时间,放学时间是17:30,显示效果如下;数组的基本用法;数组的基本用法;数组的基本用法;数组的基本用法;数组的基本用法;关联数组;利用数组实现从文件中随机挑选姓名的脚本
有一个包含姓名的文件,姓名之间用空格隔开
显示效果如下;seq
用途:打印出一串有序的数字
格式:seq [选项] 数字范围
-s:指定分隔符
-w:指定同等宽带输出
;脚本示例;利用数组和seq命令实现双色球彩票脚本
32个红球中随机选6个,16个蓝球中随机选1个
建议使用for循环
显示效果如下;tr命令
字符转换工具
只能对stdin操作,不能直接对文件操作
;使用tr删除字符
tr -d SET
将stdin中数据流删除与SET相同的字符
echo 123456 | tr -d 345
tr -d [0-9]’ /etc/hosts
df -h | tr -d %
who | tr -d ;使用tr压缩字符
tr -s SET
将连续相同的字符压缩成一个字符
echo 112233444555666 | tr -s 345
ifconfig | tr -s
tr -s SET1 SET2
先替换为SET2再压缩
echo 112233444555666 | tr -s 345 abc
echo 112233444555666 | tr 345 abc | tr -s abc
who | tr -s ‘ ‘ ‘\n’
;sort命令
默认按每行的第一个字符排序
-n:按整数进行排序
-r:递减排序
;uniq命令
删除经过排序后的数据的重复记录
通常和sort连用
sort -n tt | uniq
;cut命令
从文本文件或者文本流中提取文本列
cut -选项 提取范围 文本文件
;cut -c命令
ls -l | cut -c10
who | cut -c 20-40
cut -c -10 /etc/passwd
;命令练习
只显示/boot目录下所有对象的实际空间,并按由小到大排序
统计/etc/passwd中每种shell的被使用次数
用fdisk -l命令只显示出分区和文件系统的类型
统计/etc/passwd文件中sbin这个单词出现多少次
用find命令查找/根目录下所有包含特殊权限的对象,并只显示出对象的权限和文件名称,不能显示错误提示
列出前5位占MEM最多的进程的命令
只显示网卡eth0的IP地址
;实验案例7;实验案例8;实验案例9;思维决定未来,天道酬勤
文档评论(0)