Linux与Shell脚本应用

来源:互联网 发布:苹果6韩版支持什么网络 编辑:程序博客网 时间:2024/06/07 18:01

Shell编程

1.组合命令使用(管道操作,重定向操作,逻辑分割)

 

| 用法: 将命令1的输出交给命令2处理

< 用法:重定向输入,从指定文件读取数据,而不是从键盘输入

> , >> 用法:重定向输出,将输出结果覆盖,追加到指定文件

2>, 2>>用法:标准错误输出,将错误信息覆盖,追加到指定文件

&>, &>>用法:混合输出,将标准输出和错误信息覆盖,追加到指定文件

&& 用法:逻辑与

|| 用法:逻辑或

: 用法 顺序执行

 

2.变量基本操作

 

定义变量及赋值 格式: 变量名=变量值

引用变量       格式: $变量名 或${变量名}

 

3.双引号/单引号/反撇号

 

双引号:允许引用、\转义

单引号:禁止引用、转义

反撇号或者 $() : 以命令输出进行替换

 

4常见的环境变量

 

系统赋值 : USERLOGNAMEHOMESHELL.....

用户操作 : PATHLANGCLASSPATH......

 

5特殊变量

 

$?:前一条命令的状态值,0为正常,非0为异常

$0:脚本自身的程序名

$1-$9:第一个到第九个位置参数

$*:命令行所以参数的内容

$#:命令行的位置参数个数

 

6.数值运算

 

整数运算操作:

expr命令:计算表达式。格式 expr数值1 操作符 数值2

 

使用$[]表达式 算式替换 格式:$[数值1操作符 数值2]

 

变量递更处理:

格式:let变量++let变量--或 ((变量++))、((变量--))

 

使用随机数: RANDOM 变量

 

生产数字序列: seq 首数 尾数、seq 首数 增量 尾数

 

小数运算操作: 将表达式交给bc命令处理

表达式 | bc

例如: echo “2.3 + 4.2 ” | bc

       scale约束小数位

       Echo “scale=4 : 1/3” |bc

 

7.字符串处理(截取字符串,替换字符串)

 

路径分割:

dirname命令:获取文件的路径

basename命令:获取文件的文件名

 

使用expr命令: 格式:expr substr $var 起始位置 截取长度 (编号从1开始)

使用${}表达式: 格式:${var : 起始位置:截取长度}(编号从0开始)

 

字符串替换:使用${}表达式

格式:${var/old/new} 只会替换第一个

      ${var//old/new} 替换所有的

 

8.条件测试

 

格式:test 条件表达式

      [ 条件表达式 ]

 

9.整数值比较、字符串匹配

 

整数值比较:

-eqequal):等于

-ne(not equal):不等于

-gt(greater than):大于

-lt(lesser than):小于

-ge(greate or equal):大于或等于

-le(lesser or equal):小于或大于

字符串匹配:

=:两个字符串相同

!=: 两个字符串不相同

 

10.程序条件控制

 

单分支:

if  [条件表达式]

then

fi

 

双分支:

if  [条件表达式]

then

else

fi

 

多分支:

case $var in

Value1)

;;

Value2)

;;

.....

esac

 

循环结构

 

for循环:

for ((变量名 in取值列表))

do

 循环体

Done

 

While循环:

While(条件表达式)

do

 循环体

Done

 

11.文本处理工具(awksed

 

awk工具:

语法:awk  ‘模式 [ 操作 ]‘ 文件1 文件2 ......

常用的内建变量:

NR : 当前处理行的序数(行号)

FS : 字段分割,缺省为空格或Tab

$n: 当前行的第n个字段

$0: 当前行的所有文本内容

 

sed工具:

格式:sed  `编辑指令`文件1 文件2.......

编辑指令写法:格式: [地址1[,地址2]]操作类型

多条指令之间用分号隔开

最常用的操作类型:

p输出/打印文本行

n取下一行文本

d删除

s字符串替换

a追加新的文本

 

 

原创粉丝点击