bash是强大的脚本语言,在众多的Linux发生版中也是默认的shell,支持变量和特殊字符,下面就来看看它有哪些特殊字符:
; 命令分隔符,可以在一行中写多个命令
;; 终止case选项
. shell内建命令,等同于source,
. 作为文件名的一部分,如果是前缀,则表示为隐藏文件
. 字符匹配,在正则表达式中表示单个字符
" 双引号,弱引用,可以实现变量
‘ 单引号,强引用,引用字符本身
\ 转义字符
` 后置引用,命令替换
: 空命令,就是什么都不干,在脚本中: > a.txt 等同于 cat /dev/null > a.txt
! 取反操作符,shell关键字
* 任意字匹配,在算术运算中**是幂运算
${} 引用变量
$? 退出状态变量
$# 在bash脚本中表示参数的个数
$* [email protected] 在bash脚本中表示参数的列表
$0 脚本名称
() 命令组:如:(a=3;echo $a),注意在()中的变量,其使用范围仅限于()内并且产生子shell运行
{a,b} 大括号扩展,如 cat {a.txt,dns.sls} > c.txt
[] test的表达式,在正则表达式中表示字符匹配的范围
(()) 数据计算的扩展
> 标准输出重定向
2> 错误输出重定向
&> 重定向所有输出
< 输出重定向
|| 或,逻辑操作
&& 与,逻辑操作
{} 代码块,这个结构创建了一个匿名的函数,但和函数不同的是,其中声明的变量对脚本的其它部分来说,是可见的。
如:
#!/bin/bash
a=5
{ a=123; }
echo $a #a=123 说明代码块中对变量a的修改,影响了外边的变量a
- 用于重定向stdin或stdout,如:ls /root | cat - 或 grep ‘c‘ a.txt | diff c.txt -
^ 表示定位到行首