
shell
文章平均质量分 66
Geroge_Ming
这个作者很懒,什么都没留下…
展开
-
shell脚本实现expect免交互
一、 Shell Here Document(内嵌文档/嵌入文档)Shell 还有一种特殊形式的重定向叫做“Here Document”,目前没有统一的翻译,你可以将它理解为“嵌入文档”“内嵌文档”“立即文档”。所谓文档,就是命令需要处理的数据或者字符串;所谓嵌入,就是把数据和代码放在一起,而不是分开存放(比如将数据放在一个单独的文件中)。有时候命令需要处理的数据量很小,将它放在一个单独的文件中有点“大动干戈”,不如直接放在代码中来得方便。1.1 Here Document 的基本用法为:comma原创 2020-11-04 10:46:35 · 587 阅读 · 0 评论 -
case语句与循环语句
case多分支语句case语句的结构针对变量的不同取值,分别执行不同的命令序列这种情况与多分支的if语句非常相似,只不过if语句需要判断多个不同的条件,而case语句指示判断一个变量的不同取值格式:case 变量值 in模式1) 命令序列1 ;;模式2) 命令序列2 ;; ....*) 默认命令序列esac实例:case 控制指令 instart) 启动XX服务 ;;stop) 停止XX服务 ;; ....*) 显示服务脚本的用法esaccas原创 2020-11-03 08:56:52 · 1310 阅读 · 0 评论 -
shell脚本——条件语句
在简单的shell脚本程序中,各条语句将按先后顺序依次执行,从而实现批处理的自动化过程。但是,单一的顺序结构使得脚本过于机械化,不够“智能”,难以处理更加领过的系统任务。条件测试文件测试test命令test命令:测试特定的表达式是否成立,当条件成立时,测试语句的返回值为0,否则为其他数值命令基本格式格式一:test 条件表达式格式二:[ 条件表达式 ] '两端要有空格,此法更为常用'文件测试文件测试基本格式[ 操作符 文件或目录 ] '注意两端空格'&? 返回0表原创 2020-11-03 08:39:31 · 286 阅读 · 0 评论 -
shell脚本——正则表达式与三剑客
概述正则表达式,又称规则表达式(Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。sed是文本处理工具,可以读取文本内容,根据指定条件对数据进行添加,删除,替换等操作,被广泛应用于shell脚本awk是一个功原创 2020-11-02 21:18:40 · 223 阅读 · 0 评论 -
shell脚本练习——由浅入深(11)shell脚本——内存监控
每日一测本次练习为shell脚本系列的最后一篇,感谢诸君阅读!!!此实验接上一篇的邮箱练习!用shell脚本监控内存使用情况,使用超过80%并发邮件告警#!/bin/bashA=free -m | grep "^Mem" |awk '{print $2}'B=free -m | grep "^Mem" |awk '{print $3}'C=$ [$ B*100/$ A]if [ $ C -gt 1 ]then/opt/sendEmil.sh 948621963@qq.com “内存警告”原创 2020-09-09 15:33:40 · 238 阅读 · 0 评论 -
shell脚本练习——由浅入深(10)shell脚本——监控网站异常
每日一测用shell脚本,通过curl -I 返回状态码来判定所访问的网站是否正常,比如当代码状态200,才算正常。如果出现异常,发送邮件本次实验需要安装邮箱的安装包[root@localhost ~]# wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz[root@localhost ~]# tar -zxvf sendEmail-v1.56.tar.gz[root@localhost ~原创 2020-09-09 15:19:52 · 411 阅读 · 0 评论 -
shell脚本练习——由浅入深(9)一键部署Samba服务
每日一测用shell脚本实现一键安装并配置Samba服务,且任何人都可以访问,不需要密码,只读模式。执行脚本时需要一个路径(格式$0 $1)/opt/samba.sh/opt/samba目录若存在,则自动创建#!/bin/bashif [ “$#” -ne 1 ] thenecho “运行脚本的格式为:$0 /dir/” ###$0为运行的脚本,切需要一个绝对路径为/direxit 1原创 2020-09-08 14:58:59 · 407 阅读 · 0 评论 -
shell脚本练习——由浅入深(8)shell脚本自动清理日志文件
每日一测有两类机器300多台,用shell脚本自动清理着这两类机器里面的日志文件,在堡垒机上发布,不需要考虑堡垒机上的操作。A类机器日志存放路径很统一,B类机器日志文件存放路径需要用*匹配A类:/opt/cloud/log/ 删除7天前的日志B类:/opt/cloud/instances/ 删除15天前的日志#!/bin/bashdir1=/opt/cloud/instances/dir2=/opt/cloud/log/if [ -d $dir1 ]th原创 2020-09-07 19:50:30 · 964 阅读 · 0 评论 -
shell脚本练习——由浅入深(7)for循环遍历出IP地址
每日一测假设有个项目上线,有个需求:为了不让上线的服务器与线网的IP地址冲突,写个脚本,把20.0.0.0/24网段在线的IP地址和不在线的IP地址列出来并且保存到文档中#!/bin/bashfor i in seq 1 254doping -c 1 20.0.0.$i > /dev/nullif [ $ ? -eq 0 ]thenecho “IP地址20.0.0.$ i 被占用” >> /opt/ipup.txtelseecho “IP地址20.0.0.$i 未被原创 2020-09-06 15:55:59 · 1303 阅读 · 0 评论 -
shell脚本练习——由浅入深(6)正则表达式
每日一测用shell脚本格式至少2种方法输出有效的号码:987 456-1230和(123) 456-7890,至少要有一种方法使用正则表达式匹配完整的号码cat file.txt987-123-4567987 456-1230(123) 456-7890awk ‘/^((?[0-9]{3})? )[0-9]{3}-([0-9]{4})$/{print}’ file.txtsed -nr /’^((?[0-9]{3})? )[0-9]{3}-([0-9]{4}) $’/p file.txt原创 2020-09-02 19:16:28 · 245 阅读 · 0 评论 -
shell脚本练习——由浅入深(5)冒泡排序
每日一测使用冒泡排序方法把 123.txt 文件中的数字按照降序排序输出在一行当中,并要求没有重复数字cat 123.txt1 4 7 92 5 8 33 6 9 7#!/bin/bashmyarray() {array=(echo $@)#echo $ {array[*]}a= $ { # array [ * ]}for ((i=1; i<$a; i++))dofor ((j=0; j< $a-i; j++))doif [ $ {array[ $j ]} -lt原创 2020-09-01 18:45:38 · 335 阅读 · 0 评论 -
shell脚本练习——由浅入深(4)递归函数
每日一测用递归函数输出/usr目录下的所有子目录和可执行文件#!/bin/bashlist_files() {for f in $1/*doif [ -d $f ];thenecho “目录222f”list_files “$f” " $2"elif [ -x $f ];thenecho “文件222f”fidone}list_files “/usr” “”...原创 2020-08-31 13:39:28 · 313 阅读 · 2 评论 -
shell脚本练习——由浅入深(3)函数调用
通过在命令行中执行./output 20 30 输出20+30的值;脚本中使用sum()函数封装代码并通过调用sum函数返回结果#!/bin/bashsum() {sum=$[$1+$2]echo $sum}result=sum $1 $2echo $result原创 2020-08-30 15:49:43 · 233 阅读 · 0 评论 -
shell脚本练习——由浅入深(2)变量计算方式
每日一测假设变量i=20 * 5,用shell脚本格式写出至少4种方法输出 i 的值#!/bin/bash第一种:#i=$(expr 20 * 5)第二种:#i=$((20 * 5))第三种:i=$[20 * 5]第四种:let i=20*5输出结果:echo $i原创 2020-08-27 14:06:06 · 298 阅读 · 0 评论 -
shell脚本练习——由浅入深(1)for循环语句
shell脚本练习——由浅入深(1)for语句的简单应用每日一试shell脚本格式写出至少3种输出1到100的所有偶数的方法#!/bin/bashfor i in {2…100…2}#for i in $(seq 2 2 100)#for ((i=2; i<=100; i+=2))doecho $idone...原创 2020-08-26 15:04:09 · 261 阅读 · 0 评论 -
shell脚本规范及变量详解
shell脚本编程规范开发语言概述开发语言简单举例:shell,Python,Java,JavaScript,HTML,CSS强语言:定义变量时需要声明数据类型:如Java,C语言等 整型:int ,如1 ,2 ,3, ,100,等 长整型:Long 浮点型 单精度,float,4字节,如3.14 双精度,double,8字节 String:字符串 char ,字符 ‘a’ 1字节(Java中 ‘a’ 2字节),'男’2原创 2020-11-02 18:44:50 · 498 阅读 · 0 评论