引号与括号
引号
- 反引号
- 对命令直接输出
- 双引号
- 对命令直接输出,对变量名进行替换
- 单引号
- 全部原样输出
小括号
$()
与反引号拥有相同的功能,被称为 Command substitution
。
$(())
则有数字计算的功能。
中括号
[[ ]]
可理解为布尔运算符,返回 true 或者 false。
注意此时,操作符前后均有空格
对于字符串而言:
[[ -z STRING ]]
:判断为空[[ -n STRING ]]
:判断非空
对于数字而言,需要使用一下字符操作符:
[[ NUM -eq NUM ]]
Equal,等于。[[ NUM -ne NUM ]]
Not equal,不等于。[[ NUM -lt NUM ]]
Less than,小于。[[ NUM -le NUM ]]
Less than or equal,小于等于。[[ NUM -gt NUM ]]
Greater than,大于。[[ NUM -ge NUM ]]
Greater than or equal,大于等于。
如果更想使用 >/</=
等符号操作符,则需要使用 (( ))
括起来。
对于文件而言:
[[ -e FILE ]]
Exists:存在[[ -r FILE ]]
Readable:可读[[ -w FILE ]]
Writable:可写[[ -x FILE ]]
Executable:可执行[[ -h FILE ]]
Symlink:链接[[ -d FILE ]]
Directory:目录[[ -f FILE ]]
File:文件[[ -s FILE ]]
文件内容不为空
shell 中
${}
与$()
有什么区别: 可理解为 ${var} 就是 $var,指代某个变量。{} 可以作为引用变量边界。除了边界,还有含空格的变量等特殊变量。