高级Bash编程指南__第二部分__基本__3.0特殊字符

高级Bash编程指南:一本深入学习shell脚本艺术的书籍

译者:黄毅   杨春敏



第二部分 基本
3.0 特殊字符
1.0 命令分隔符为分号 ;
2.0 终止case选项为双分号 即 ;;
3.0 "点"命令[即 .]  等价于source命令
"点"作为文件名的一部分,如果点放在文件名的开头的话,那么这个文件将会成为隐藏文件。
"点"作为目录的话,一个点代表当前工作目录,两个点表示上一级目录
4.0 部分引用[双引号,即"], "STRING"将会阻止(解释)STRING中大部分特殊字符
5.0 全引用[单引号,即'], "STRING"将会阻止STRING中所有特殊字符的解释
6.0 逗号操作符,逗号操作符链接了一系列的算数操作,虽然里面所有的内容都被运行了,但只有最后一项被返回
7.0 转义符[反斜杠,即\]
8.0 命令替换
9.0 空命令[冒号,即:] 等价于"NOP"(no op,一个什么也不干的命令),也可以被认为与shell的内建命令true作用相同,":"命令是一个bash的内建命令,它的退出码(exit status)是"true"(0)
10.0 "$"符号,行结束符,在正则表达式中,"$"表示行结束符。
${}表示参数替换
$*, $@ 表示参数位置
$? 退出状态码变量。 保存了一个命令,一个函数,或者一个脚本的退出状态码
$$ 进程ID变量,保存了它所在脚本的进程ID
11.0 "()"命令组。
(a=hello; echo $a) 在括号中的命令列表,将会作为一个子shell来运行。
12.0 "{}"大括号扩展。
#把file1,file2,file3连接在一起,并且重定向到combined file中。
cat {file1,file2,file3} > combined file

#复制file22.txt 到file22.backuup中
cp file22.{txt,backup}

13.0 代码块[大括号,即{}] ,又称为内部组,这个结构事实上创建了一个匿名函数(一个没有名字的函数),然而,与标准函数不同的是,在其中声明的变量,对于脚本其他部分的代码来说还是可见的。
#!/bin/bash

a=123
{ a=321; }

echo "a=$a"      #输出结果 321  ; 说明代码块中对a所做的修改影响了外边的变量。注意{}中的代码将不会开启一个新的子shell;

14.0 ">|" 强制重定向,强制覆盖一个现存文件
15.0 "||" 逻辑或操作
16.0 "&" 后台运行命令。 一个命令后边跟一个&表示在后台运行
17.0 "&&" 逻辑与操作
18.0 "-",先前的工作目录 cd - 返回到上一次的工作目录,它使用了$OLDPWD环境变量
19.0 "~" 当前用户的homt目录, echo ~
20.0 "~+" 当前工作目录,相当于$PWD
21.0 "~-" 先前的工作目录
22.0 "=~" 正则表达式匹配
23.0 "^" 行首




@fudoucheng.jiejinzhonglu.panyuqu.guangzhoushi.guangdongsheng

2016-10-17 0:44

猜你喜欢

转载自listen-raining.iteye.com/blog/2330884
今日推荐