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)。通常可以用来导入定义好的函数或者执行一些公共的操作。

posted @ 2012-06-18 20:34 akawhy 阅读(...) 评论(...) 编辑 收藏