一、特殊符号
1.{}大括号
用法一:通配符扩展
ls my_{a,b}s 相当于 ls my_as my_bs
用法二:用于语句块的构造,语句之间用回车隔开
以上内容构成一个语句块
用法三:参数扩展
**
2.[]中括号;
**
用法一:允许匹配方括号中任意一个单个字符
例子:
(在mkdir命令中无效)
用法二: 用于条件判断符号
[]符号可理解为指向test命令的一个软连接
if [ “
?
"
!
=
0
]
等
价
于
i
f
t
e
s
t
"
?" != 0 ] 等价于 if test "
?"!=0]等价于iftest"?” != 0
then echo “Executes error”
3.``反引号: 返回当前执行命令的结果
fdv=date +%
echo “Today $fdv”
在反引号内的 date +%F 会被视为命令,执行的结果带入fdv变量中
4.’'单引号:单引号里的任何字符都会原样输出,单引号中的变量是无效的
""双引号:里面可以有变量,可以转义字符
如果想在定义的变量中加入空格,必须用单引号或双引号
5.
6.
7.冒号:内建空指令,返回值为0
8. # 号 :后跟注释
* 号 : 匹配文件名中的任何字符(包括字符串)
?号: 匹配文件名中的单个字符
~ 号 : 代表使用者 的home 目录
9. \ 反斜线:
10.!号 :代表反逻辑
二、shell变量
1.变量名不加$符号
变量名和等号之间不能有空格。
可以使用下划线(_),不能使用标点符号
不能用bash里的关键字
也可用语句给变量赋值:
for file in 反引号 ls /etc 反引号
表示 将ls /etc 的结果循环
使用定义过的变量,在前面加美元符号即可
赋值可被覆盖
2.readnoly语句
可以将变量定义为只读变量(值不能被改变)