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追加新的文本
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追加新的文本
相关文章推荐
- Linux就该这么学--Shell脚本基本应用
- Linux——Shell脚本的基本应用
- linux的shell脚本中if,for,while的解析与应用
- linux中Shell脚本应用(一)
- linux下java应用重启shell脚本
- linux中Shell脚本应用(二)
- Linux/shell命令的实际应用——while;do;循环执行脚本
- linux环境java应用通用启动shell脚本
- [shell脚本]Linux自定义命令并启用应用
- 这篇文章主要介绍了Linux中执行shell脚本的4种方法总结
- 【Linux】一些好玩的shell脚本
- Linux编写shell脚本的注意事项
- linux之shell脚本学习篇一
- Linux下实现一个简单进度条和shell脚本实现彩色进度条
- Linux下Shell脚本替换换行符(转)
- Linux下执行Shell脚本
- linux----->shell高级编程----grep应用
- Linux下无法执行shell脚本问题
- Linux使用Shell脚本实现ftp的自动上传下载
- Shell脚本应用之服务启动脚本