大家都知道,利用shell中的test命令及判断符号[],可以做以下事情:
1. 关于某个文件名的“文件类型”判断;
2. 关于文件的权限检测;
3. 两个文件之间的比较;
4. 关于两个整数之间的判定;
5. 判定字符串的数据;
6. 多重条件判定。
但是我最近在写脚本的时候,发现当没有定义AAA变量的时候,[ -z $AAA ]的结果居然是1。
经过学习发现,我这个脚本菜鸟中了判断符号[ ]的"埋伏"。$AAA应该用双引号括起来。[ -z "$AAA"]的结果才是正常的。所以为了避免遇到奇怪的问题,在使用判断符号[ ]的时候要注意:
- [ ]内的每个组件都需要有空格键来分隔;
- [ ]内的变量,最好都以双引号括起来;
- [ ]内的常量,最好都以双引号括起来。
养成好习惯吧~