写过Sell脚本的同学都应该有这样的感触:偶尔多写了或者少写了一个空格,就会报出奇奇怪怪的错误,由于空格是不可见字符,因此排查此类错误最靠谱的方式是,不要犯这个错误。
Shell中有一个最基本的命令叫test,它可以测试数值、测试字符串和测试文件属性,是用得最多的命令,look:
当我们在执行分支语句、循环语句的时候,一般都离不开它,比如下面的脚本
#!/bin/bash if test -e file && test -r file then cat file fi
上述脚本的含义是:test一下文件file,如果存在并可读,就让它在屏幕上显示出来。但是上面那么写的确不好看。好看的代码应该是这样的:
#!/bin/bash if [ -e file ] && [ -r file ] then cat file fi
注意到:test 被改成成一对方括号 [ ] ,顿时好看多啦!可是你要看清楚,方括号的两边必须有空格,如果没有,那么等着被系统错误羞辱吧……
然而,有些地方又绝对不能有空格,坑你没商量,比如变量定义赋值:
name=Michael
上面的赋值号两边不能加空格,如果有空格,那么等着被系统错误羞辱吧……