码迷,mamicode.com
首页 > 系统相关 > 详细

shell笔记two

时间:2017-08-29 12:55:24      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:后退   退出   image   2-2   表达   basename   登录   多少   cut   

目录:

1.字符串的处理截取

2.数组

3.egrep和正则表达式

 

 

 

one.1 字符串截取

abc=nizhidaoma

echo ${abc:0:3}    abc为变量,0为从第一个字符开始,3为往后数一共3位

  echo ${#abc}    统计总共多少位

expr substr "$abc" 1 3    截取变量abc中从第一个开始,往后数一共3位

cut -b 1-5 /etc/passwd    1-5为截取第一个1到第五个,/etc/passwd为文件绝对路径

  echo "$abc" | cut -b 1-5 如果是变量需要打印后管道给cut处理

 

one.2 路径截取

dirname /var/ftp/dir/a.txt    结果为/var/ftp/dir,这个命令会找出路径的目录

basename /var/ftp/dir/a.txt    结果为a.txt,这个命令会找出路径的文件

 

one.3 字符串替换

abc=nizhidaoma

echo ${abc/i/666}    将变量abc第一个i替换为666

echo ${abc//i/666}    将变量abc所有i替换为666

 

one.4 字符串掐头去

abc=nizhidaoma

echo ${abc#i}    从左向右,最短匹配删除

echo ${abc##i}    从左向右,最长匹配删除

技术分享

echo ${abc%i*}    从右向左,最短匹配删除

echo ${abc%%i*}    从右向左,最短匹配删除

技术分享

 

one.5 变量值检测

abc=nizhidaoma

echo ${abc:-xixi}    若变量abc有值则返回变量abc的值,若没有则用xixi代替,但变量abc本身值还是没有

  echo ${abc:=xixi} 若变量abc没值则将xixi给abc做值

 

 

two.1 数组

abc=(ni zhi dao ma)    数组用()来表示,值之间空格隔开

  echo ${abc[0]} 打印数组abc第一个值,从0开始,[0]位下标

  abc[0]=haha 给数组的值变更

  echo ${abc[@]} 打印数组所有值

  echo ${#abc[@]} 统计数组内值的个数

  echo ${abc[@]:0:3} 显示从数组第0位的值往后一共3个值

 

two.2 expect自动交互软件

#!/usr/bin/expect

spawn ssh root@127.0.0.1    创建交互式进程,可以使ftp登录

expect {

"yes/no" {send "yes\r"}    捕捉到有yes/no的行会自动输入yes,\r为回车符

"password" {send "123456\r"}    若没有捕捉到会等待一段时间后退出脚本

}

interact    允许交互式环境

 

three.1 egrep

egrep -i ‘^for‘ abc.txt    查找abc.txt中for开头的行

   egrep支持扩展正则,等同于grep -E

技术分享

 

three.2 正则表达式

行首尾

技术分享

未定匹配次数

技术分享

限定次数

 技术分享

 [ ]范围内单字匹配

 技术分享

 整体及边界匹配

技术分享



four.1 声明

以上内容大部分来自达内PPT的资源,这里为收集整理!

 

shell笔记two

标签:后退   退出   image   2-2   表达   basename   登录   多少   cut   

原文地址:http://www.cnblogs.com/zjswdbk/p/7190832.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!