您的位置:首页 > 运维架构 > Shell

Linux与Shell脚本应用

2017-08-14 23:49 204 查看
Shell编程
1.组合命令使用(管道操作,重定向操作,逻辑分割)

 

| 用法: 将命令1的输出交给命令2处理
< 用法:重定向输入,从指定文件读取数据,而不是从键盘输入
> , >> 用法:重定向输出,将输出结果覆盖,追加到指定文件
2>, 2>>用法:标准错误输出,将错误信息覆盖,追加到指定文件
&>, &>>用法:混合输出,将标准输出和错误信息覆盖,追加到指定文件
&& 用法:逻辑与
|| 用法:逻辑或
: 用法 顺序执行
 
2.变量基本操作

 

定义变量及赋值 格式: 变量名=变量值
引用变量       格式: $变量名 或
${变量名}
 
3.双引号/单引号/反撇号

 

双引号:允许引用、\转义
单引号:禁止引用、转义
反撇号或者 $() : 以命令输出进行替换
 
4常见的环境变量

 

系统赋值 : USER、LOGNAME、HOME、SHELL、.....
用户操作 : PATH、LANG、CLASSPATH、......
 
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.整数值比较、字符串匹配

 

整数值比较:
-eq(equal):等于
-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.文本处理工具(awk和sed)

 
awk工具:
语法:awk  ‘模式
[ 操作 ]
‘ 文件1 文件2 ......
常用的内建变量:
NR : 当前处理行的序数(行号)
FS : 字段分割,缺省为空格或Tab位
$n: 当前行的第n个字段
$0: 当前行的所有文本内容
 
sed工具:
格式:sed  `编辑指令`
文件1
文件2.......
编辑指令写法:格式: [地址1[,地址2]]操作类型
多条指令之间用分号隔开
最常用的操作类型:
p输出/打印文本行
n取下一行文本
d删除
s字符串替换
a追加新的文本
 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: