shell

1.shell脚本编写规范

1,声明解释器

#!/bin/bash

2,编写注释

#可以描述脚本功能、变量作用等信息

3,执行指令

2.脚本的执行方式  

1,为脚本添加x权限,使用相对或者绝对路径执行

2,使用解释器程序执行脚本,无需x权限

3,使用source命令执行脚本,无需x权限

3.重定向扩展

> 重定向标准输出

2> 重定向错误输出

&>  重定向所有输出

4.位置变量与预定义变量

$1  执行脚本时后面第1个位置参数

$2  执行脚本时后面第2个位置参数

$3  执行脚本时后面第3个位置参数

$*  执行脚本时后面所有位置参数

$#  执行脚本时后面位置参数的个数

$$  随机进程号

$?  判断上一条指令是否执行成功,0是成功,非0是失败

5.引号和反撇号   

" " 双引号  界定范围   ' '  单引号  界定范围  屏蔽特殊符号的功能   ` `  反撇号  获取命令的执行结果,还可以使用$( )实现相同效果

6.使用read指令

read -p "请输入用户名"  u   //-p是可以定义提示信息,u相当于自定义变量名称,可以存储用户看到提示信息后输入的字符

stty  -echo 屏蔽回显  stty  echo 恢复回显

7.运算

expr  运算并输出结果  $[   ]或者$((  ))   运算 echo 命令查看   使用let命令实现变量的自增减

8.逻辑组合

条件 &&  指令     条件成功才执行指令          条件 ||   指令     条件失败才执行指令

9.数字

-eq  是否相等    -ne  是否不等    -gt  是否大于

-ge   是否大于等于  -lt  是否小于   -le  是否小于等于

10.文件

-e  判断文件是否存在,不关心类型

-f  判断文件是否存在,必须是普通文件

-d  判断文件是否存在,必须是目录

-r  判断当前用户对文件是否有读权限,对root无效

-w 判断当前用户对文件是否有写权限,对root无效

-x  判断当前用户对文件是否有x权限

11.if分支

1.单分支

if 条件测试;then    //满足条件的话就执行下面指令

执行指令

fi

2.双分支

if 条件测试;then    //满足条件的话就执行下面指令

执行指令A   //指令可以是一条,也可以是多条

else     //否则,不满足条件的话就执行下面指令

执行指令B

fi

3.多分支

if 条件测试;then    //满足条件的话就执行下面A指令

执行指令A   //指令可以是一条,也可以是多条

elif 条件测试;then    //满足条件的话就执行下面B指令

执行指令B

elif 条件测试;then    //满足条件的话就执行下面C指令

执行指令C

else     //否则,不满足条件的话就执行下面指令

执行指令

fi

12.循环,可以反复执行某任务

for循环,可以定义循环次数

for 变量名称 in 值1  值2  值3 。。。。  //此处变量名可以自定义,通常习惯

用i,值的多少决定了下面do与done之间的任务执行多少次,每个值之间有空

格,这里是有3个值,所以就循环执行指令3次

do

任务

done

13.while循环,可以根据条件决定循环次数,也可以实现无限循环

while 条件测试   //根据条件的结果决定是否要执行任务,条件测试成

功的话就执行,如果失败立刻结束循环

do

任务

done

:    //冒号代表永远正确

14.循环的控制

exit  可以终止循环,但脚本也终止

break  可以终止循环,继续循环后的任务

continue  可以终止当前循环,继续下一次循环

15.case分支,功能类似if,编写时语句比if精简

case 调用的变量名 in

模式1)

指令;;

模式2)

指令;;

*)

指令

esac

16.函数,可以利用一个名称存储公共的语句块,实现

精简脚本方便后期调用的目的

函数名(){

指令

}

17.字符串的处理

1.字符串的截取

${变量名称:截取位置:截取长度}

2.字符串替换

${变量名/旧/新}

3.字符串的删除,可以删除两边

${变量名#要删除的内容}     掐头

${变量名%要删除的内容}     去尾

定义变量初值(备用)

${变量名:-初值}

18.正则表达式

\w匹配数字、字母、下划线      \s 匹配空格、tab键

19.sed  流式编辑器

可以对文档进行非交互式增删改查,逐行处理

用法:

1,前置指令 | sed  选项  条件  指令

2,sed  选项  条件  指令  被处理文档

选项  -n  屏蔽默认输出   -r 支持扩展正则  -i  修改源文件

指令  p  输出   d  删除   s 替换  a 行下追加   i  行上添加   c  替换整行

条件  行号   /字符串/

20.awk 

可以实现精确搜索并输出 ,逐行处理

1,前置指令 | awk 选项  条件  指令

2,awk 选项  条件  指令  被处理文档

选项 -F 定义分隔符

指令 print

条件  /字符串/

内置变量  $1第一列  $2第二列  $3第三列 ...

 $0 所有列   NR行号   NF 列号

21.awk的条件

1,/字符串/   还可以使用正则    ~ 包含   !~不包含

2,使用数字或者字符串

3,逻辑组合  &&并且   ||或者

22.awk处理时机,可以执行额外任务

BEGIN任务  执行1次,读取文档之前执行

逐行任务   执行n次,读取文档时执行 

END任务   执行1次,读取文档之后执行

23.使用awk数组+for循环实现高级搜索

数组 相当于可以存储多个值的特殊变量

数组名[下标]=下标对应的值

for(变量名 in 数组名){print 变量名}    //这个格式可以查看数组的所有下标

 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

W.技术宅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值