有比较好的字符串处理,字符串切片(对字符串的部分内容进行提取)
查看长度
跳过前3个
跳过前3个,取4个
-3等于从 右往左数
抛头去尾,前三个不要,后4个不要
先取后面4个,第二次再从右往前数两个
offset跳过的意思,因此lengh必须大于offset,是有一定的版本要求的,在7上可以,在6上不可以
支持模式取字符串
${var#word} 从左到右,查找var变量里,第一次出现的word,之前的全不要,之后的留着
贪婪模式,找shell类型就简单了,不要替换,取列什么的
普通模式找到第一个斜线停止,贪婪模式找到最后一个斜线
从右到左
** 等于通配符,可以理解为从右往左找,一直找到这个单词结束
找设备名也很简单
取ip地址
比cut简单多了
想把协议取出,url路径
取端口号
支持字符串的搜索替换
全部替换//双斜线
以这个字符串为行首的进行替换加#
以这个字符串为行尾的进行替换加%
也支持搜索删除
根据某个字符串的状态来决定一个新的变量(根据一个变量的值来决定 另外一个变量的值是什么)
1.var变量,str是变量,expr是表达式。根据str为否设置 ,是否为空来决定var的值,当str没有配置(没声明,没赋值,为空)var=expr字符串,str=""为空,var=空,str非空,var=str
虽然默认shell变量可以直接使用,但实际上shell也可以指定类型,内部命令help加在前面
-xf显示环境函数(代表这个函数可以在子shell使用)
-f显示已经定义的函数名和内容
-F光有名字不看内容
-l会把声明的变量为小写字母
-u会把声明的变量为大写字母
evel 后面跟命令,进行两次处理,会扫描后面的有没有变量,如果有变量就把变量替换成它的值
第二次就执行命令
下面这种方法也可以,把title对应的这个间接变量的值显示出来
执行命令有的时候是希望,命令不是固定的,是根据情况动态生成的命令,就可以把命令存放在变量里,就可以用变量间接执行里面的命令
生成临时文件的命令mktemp,x代表随机字符,避免文件名冲突(X个数大于等于3就可以)
-d还可以指定生成。临时文件夹
-p指定生成 的路径
会提示你生成的是什么文件,可以放到变量里,文件路径也可以放到变量里
创建随机文件的时候记录文件名
可以复制文件,也可以同时起到创建此文件属性的功能(权限所属者,所属组,cp命令执行完还需要chmod/chown更改属性),编译安装(第一步config,第二步make,第三部mkinstall内部就用的的这个命令)
连复制带修改
-d创建文件夹,mkdir也可以加权限
可以认为是一种语言
、
excep可以提前把你输入的命令给交互式命令,从而实现自动化操作
ssh ftp scp raid、mdisk划分区、
except本身就是个交互式命令,安装except
捕获hi ,做said hi
也可以写成下面 的格式
spawn激活此命令执行
ssh访问慢可能是因为反向解析的有些慢,还有实名认证的关掉
api验证关掉79行
dns关闭115行
也支持变量
还支持位置参数
就可以把5个文件拷贝到100个文件上
写完这个就可以另外写个脚本调用
也可以把ip存入到文本,读文本就可以
expect(针对机器不太多的情况几十台)
2019/02/22 shell脚本编程expect
最新推荐文章于 2022-04-26 16:40:08 发布