Linux与Shell脚本应用
来源:互联网 发布:苹果6韩版支持什么网络 编辑:程序博客网 时间:2024/06/07 18:01
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追加新的文本
- Linux与Shell脚本应用
- Linux Shell脚本应用
- Linux命令与shell脚本
- Linux Shell脚本应用——初识 shell
- 【Shell】【学习笔记】Linux Shell脚本应用(二)
- 【Shell】【学习笔记】Linux Shell脚本应用(三)
- 【Shell】【学习笔记】Linux Shell脚本应用(四)
- 【Shell】【学习笔记】Linux Shell脚本应用(五)
- 【Shell】【学习笔记】Linux Shell脚本应用(六)
- 【Shell】【学习笔记】Linux Shell脚本应用(七)
- 【Shell】【学习笔记】Linux Shell脚本应用(一)
- 【Shell】【学习笔记】Linux Shell脚本应用(八)
- 【Shell】【学习笔记】Linux Shell脚本应用(九)
- 【Shell】【学习笔记】Linux Shell脚本应用(十)
- 【Shell】【学习笔记】Linux Shell脚本应用(十一)
- Linux shell进阶应用与shell编程
- Linux命令行与shell脚本编程大全
- Linux shell脚本的建立与执行
- fputc函数
- 剑指offer--链表中环的入口结点
- ros海龟例子
- Python平台下调用阿里云API参数实现DDNS功能
- netty(六) 为什么选择netty
- Linux与Shell脚本应用
- 【机器学习】为什么你编程学得越久,就越难入门人工智能?
- 创建DLL详解(2)
- 恶意样本分析手册-虚拟机检测篇(下)
- Ubuntu安装NVIDIA驱动补充
- java并发工具CountDownLatch的理解以及使用
- 2017.08.14工作日记
- 第二章 身份验证 (一) 登录、退出
- poj 3061 Subsequence(尺取)