- 1、本文档共298页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LINUX BASH 读书心得笔记
LINUX BASH NOTE-BOOK
特殊字符
# 注释符
; 命令分隔符。在同一行使用多个命令时需用到
;; 终止case选项符
. a)等价于source 命令
b)作为文件的前缀表示该文件为隐藏文件
c)用在目录作为目录名的一部份时表示当前目录,..表示上级目录
d)作为正则表达式的一部分时用来匹配任意单个字符
部分引用。“STRING”阻止了一部分的特殊字符
全引用。“STRING”阻止了所有的特殊字符
, 算术操作,只取最后一个值作为整个表达式的值
\ 转义字符
/ 文件名路径分隔符
` 后置引用
: a)空命令,等价于NOP。也可认为与shell内置的true命令相同功能。(while :等价于while True)
b)在if/then的占位符,什么也不做
c)在一个 2 元命令中提供一个占位符和和默认参数
d)在和 (重定向操作符)结合使用时,把一个文件截断到 0 长度,没有修改它的权限。如果文件在之前并不存在,那么就??建它。如:
1 : data.xxx #文件data.xxx现在被清空了.
2
3 #与 cat /dev/null data.xxx 的作用相同
4 #然而,这不会产生一个新的进程,因为:是一个内建命令.
注意: 这只适用于正规文件,而不是管道,符号连接,和某些特殊文件。
e) 还用来在/etc/passwd 和$PATH 变量中用来做分隔符.
bash$ echo $PATH
/usr/local/bin:/bin:/usr/X11R6/bin:/sbin:/usr/sbin:/usr/games
! 取反操作符
* a)万能匹配字符,用于文件名匹配和正则表达式匹配。
b)数学乘法,**表示幂运算
? a)测试操作.在一个确定的表达式中,用?来测试结果.(( ))结构可以用来做数学计算或者是写 c 代码,那?就是 c 语言的 3 元操作符的一个.在参数替换中,?测试一个变量是否被 set 了.
b)在正则表达式中一样匹配任意的单个字符
$ a)变量替换
var1=5
echo $var1 # 5
b)在正则表达式中作为匹配行结束符
${ } 参数替换
$*,$@ 位置参数
$? 退出状态变量.$?保存一个命令/一个函数或者脚本本身的退出状态.
$$ 进程 ID 变量.这个$$变量保存运行脚本进程 ID
( ) a)命令组.如:
(a=hello;echo $a)
注意:在()中的命令列表,将作为一个子 shell 来运行.
在()中的变量,由于是在子 shell 中,所以对于脚本剩下的部分是不可用的.
b)用在数组初始化,如:
Array=(element1,element2,element3)
{xxx,yyy,zzz...}
大括号扩展,如:
1 cat {file1,file2,file3} combined_file
2 # 把 file1,file2,file3 连接在一起,并且重定向到 combined_file 中.
3
4
5 cp file22.{txt,backup}
6 # 拷贝file22.txt 到file22.backup中
一个命令可能会对大括号中的以逗号分割的文件列表起作用[1]. file globbing 将对大括号中的文件名作扩展.
注意: 在大括号中,不允许有空白,除非这个空白是有意义的.
echo {file1,file2}\ :{\ A, B, C}
file1 : A file1 : B file1 : C file2 : A file2 : B file2 : C
{ } 代码块.又被称为内部组.事实上,这个结构创建了一个匿名的函数.但是与函数不同的是,在其中声明的变量,对于脚本其他部分的代码来说还是可见的,即可以使用并影响外代码。
[ ] a)测试。test表达式的[]中,值得注意的是[是 shell 内建 test 命令的一部分,并不是/usr/bin/test 中的扩展命令的一个连接.
b)数组元素
Array[1]=slot_1
echo ${Array[1]}
c)字符范围.在正则表达式中使用,作为字符匹配的一个范围
[[ ]]] 测试。test表达式在其中。与[test]有所区别。
(( )) 数学计算的扩展。在(( ))结构中可以使用一些数字计算。
重定向.
scriptname filename 重定向脚本的输出到文件中.覆盖文件原
文档评论(0)