bash shell的几个注意点
最近的几个月忙着修改php,shell等各种程序,另外也忙着做毕设的东西,搞得有点小累,感觉自己也没有得到很大的提高,倒是感觉越来越浮躁了。
今天分享几个bash shell的几个需要注意的地方:
1. bash shell可以使用 [[ ]]来代替[ ]进行if的测试。简单来说:[[是增强型的[,使用起来更加安全,可以防止因为bash变量为空造成的bash语法解析的错误。
2. 好好利用set命令。set -/+ 分别代表启用或禁用功能。常用的有:
set -e 若命令带非0值返回时,程序立即退出
set -n 读取命令但不执行,常用于检查错误
3. shell的变量生命周期为:变量从定义时就一直起作用,直到整个程序终止。因此在函数中定义的变量都是属于全局的。所以推荐在编写shell函数时多使用local
#!/bin/bash function func1( ){ local var=1 } var=0 echo "var is $var" func1 echo "var is $var"
题外话,shell的语法真的很奇特,尤其是函数调用这块......
4. shell内建的字符串操作相当之强大:
${#string} #获取字符串长度 ${string/substr/replace} #替换(第一次匹配的地方) ${string//substr/replace} #替换所有匹配的地方
这里需要注意替换操作符的最右边没有/,很容易出错
5. shell当中可以用 . file 来包含其他文件,类似php中的include(file)。通常可以用来导入定义好的函数或者执行一些公共的操作。