没有合适的资源?快使用搜索试试~ 我知道了~
基础的shell使用介绍,有喜欢的同学可以下载学习一下
资源详情
资源评论
资源推荐
bash 编程学习笔记(1)
好象现在不流行用 编写脚本了,这些笔记可能显得有些过时,放在这儿供自己参考吧。
同时,尽可能把一些细节列出来,供大家当参考手册来查吧。
可以理解为用 这种脚本语言进行编程,编写好的程序放在文件里,用 来解释执行这个程序。
下面概要介绍一下 编程。
编写 脚本程序的要求:
建立脚本
程序第一行需用指明解释程序
通过 来运行 程序。 将程序改为可执行,则可用 运行
此脚本。
脚本语言作为一种编程语言,与其它计算机高级语言一样有一些共性:
注释
以开头的至行尾的信息(当出现在引号内、正则式内、比较式内等不为注释符的情况除外)
变量
变量名是字符串,赋值如下: 变量名值
对变量的使用或取出变量值,在变量名前加符号,有时为了将变量名与其它字符区别开来,可以用变量名的
方式。对变量的值的引用,叫变量替换。变量只有在声明、赋值、、 或表示
时,不用作前缀。
还有一类变量叫环境变量,与 变量的用法一致,用 命令可以将 变量改为环境变量,不清楚反
向如何操作。
变量声明后尚未赋值时,值为
当 为一含有空格的字符串时, 与 !"的结果可能不一致,前者会压缩多余的连续空格。
变量不分类型,当要对其进行四则运算时,只要求变量的值只含有阿拉伯数字。
命令
相当于一般语言里的基本函数,常用的 命令参看附表。
脚本语言可以自定义函数。
流程控制
1)if 语句
#$%&
#$%&
其中用” $%"表示条件测试,注意方括号周围的空格。
2)case 语句
表达式可以用来匹配一个给定的字符串,而不是数字。
&&
'( &&
3)while 语句
(&
4)for 语句
#&
输入输出
命令间交互
)管道*
将一个命令的输出当作另一个命令的输入
+重定向,或,,
,-将一个命令的输出写到一个文件并覆盖旧的内容
,,-将一个命令的输出追加到一个文件的尾部
.反引号/
可以将以反引号括起来的命令的输出作为另一个命令的命令行参数
select 表达式
&
0
需要说明的是,此处用“语句”,只是为了表达语言的共性,对 脚本来说应该叫表达式比较准确。
附表:
常用命令表(不详细区分外部命令与 1 命令)
命令 说明
22
将文字内容打印在屏幕上
文件列表
(3
计算文件行数
(1(
计算文件中的单词数
(1
计算文件中的字符数
文件拷贝
(
重命名文件或移动文件
删除文件
44
在文件内搜索字符串比如: 4 4
1
指定欲显示的文件内容范围,并将它们输出到标准输出设备比如:输出每行第 5 个到第 6 个字
符 1516 千万不要和 命令混淆,这是两个完全不同的命令
输出文件内容到标准输出设备(屏幕)上
得到文件类型
提示用户输入,并将输入赋值给变量
对 文件中的行进行排序
7
删除文本文件中出现的行列比如: *7
进行数学运算 8-+.+22.
搜索文件比如:根据文件名搜索 11
将数据输出到标准输出设备屏幕和文件比如:*
返回不包含路径的文件名比如: 将返回
返回文件所在路径比如: 将返回
打印文本文件开头几行
打印文本文件末尾几行
9 是一个基本的查找替换程序。可以从标准输入(比如命令管道)读入文本,并将结果输出
到标准输出(屏幕)。该命令采用正则表达式(见参考)进行搜索。不要和 中的通配符相
混淆。比如:将 #替换为 :;:*
4#:;4,(
(0
(0用来从文本文件中提取字段。缺省地,字段分割符是空格,可以使用1; 指定其他分割
符。*(01;<4)2<2.4这里我们使用,作为字段分割符,同时打印第
一个和第三个字段。如果该文件内容如下: =><.?<@ABC<++<D9= 命令
输出结果为:=><@ABC<D9=
以下几篇笔记,会详细地介绍一些细节。
参考资料
编程
-EF?6
bash 编程学习笔记(2)
中的一些特殊字符,具有特定含义或特殊功能。同一字符,在不同的上下文环境中,含义可能不一致,这点
一定要注意。
特殊字符表
字符 说明
注释符,从至行尾都是注释。在引号、反引号及正则式、表达式中不是注释符。
&
命令分隔符,由此可将多个命令放在一行中。(#语句的条件式后有&号)
&&
G 语句中一个选项的结束符。
)相当于 命令
+文件名的一部分,尤其是用在开头可隐藏文件。
.一个表示当前目录,一个表示上一级目录。
?在正则式中,表示非回车换行的一个字符。
2
部分引用,即有部分字符还需要解释出具体内容。
4
全部引用,引号内的字符不再进一步解释。
<
逗号操作符,连接一系列算术运算,但只返回最后一个的结果
H
转义符,
文件路径分隔符,或除号
/
命令执行符,将执行的输出结果放入一变量
-
空命令,不做任何操作,返回真值。也被用来分隔 I=JK 变量值中的路径,或 ( 中的项
对一个检测或返回值取反
'
统配符,正则式中的限定符,算法操作的乘号<一个''是幂运算符。
F
测试符,统配符
变量值引用符<或正则式中的行结束
变量替换符
'或L 位置参数
F
返回状态值变量
进程 @M 变量
)命令组,启动一个子 <由此组中定义的变量不能被组后的脚本访问。
+数组初始化。
<BBB
选项符,选项间不能有空格,除非有引号或已转义。
代码块符,定义匿名函数<不启动子 ,变量值块后脚本可见,可把此代码作一个命令看,有输入输
出并可重定向。
H&
路径名,用在 命令中,对&转义以防为 解析为命令分隔符,此&用以结束1 参数。
$%
检测符,表达在$%内。$是 内建的,不是对 的引用
数组元素
字符范围
$$%%
检测符,
扩展并计算整数表达式
,或N 重定向符,字符串或整数大于或小于符
O,
将 和 重定向到一个地方
,O+
将 重定向到 。
,,
结果追加到信件尾部
NN
用在 中
H,或HN 正则式的单词边界H?)
*
管道<将前者的 作后者的 的内容<以子进程的方式运行,不可用来修改变量
,*
强制重定向
**
逻辑或
OO
逻辑 =PM
O
后台运行
1
)参数前缀
+ 重定向<此时不是 的功能,而是相关程序的。
.前一个工作目录,等Q:MIRM
?减号
等号,或字串比较符
加号
有些程序用打开用1关闭某些功能
S
模操作符,在正则式中做匹配符
T
初始目录,等于KQC8
T
当前目录,等于IRM
T1
前一工作目录,等于Q:MIRM
U
正则式中的行开始。
bash 编程学习笔记(3)
命令行参数的处理。
命令行参数,可以通过V<)<+变量引用,其中V 指脚本程序本身的名字,) 是第一个参数,依次类推。从
第 )V 个参数开始,对其引用时要加花括号,如)V< ))等。
命令行参数的个数可以通过变量取得,一下取得所有的参数可以通过变量L或'取得,区别是前者不压缩变
量之间的空白。见下列。
$ L %)+.?252WXY6)V
L)+.?ZZ5WXY6)V
')+.?5WXY6)V
$ L %)+.?5WXY6)V
L)+.?5WXY6)V
')+.?5WXY6)V
直接对最后一个参数的引用,要通过“间接引用”的方式,如下:
P#
P 4(0
判断一个参数存在或不存在,可分别用1 或1[ 条件操作符,如-
剩余31页未读,继续阅读
biglazybug
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0