shell脚本编程注意事项

记录自己写shell脚本时踩过的坑。

1. 删除文件之前一定要判断文件是否存在,不要想当然。

  获取脚本所在位置绝对路径方法:

  root=$(dirname $(readlink -f $0))

  root=$(cd $(dirname $0);pwd)

  删除文件:

  [ -f ${root}/file.txt ] && rm -rf ${root}/file.txt

2. 非必要不要使用临时文件。

  如果非要使用临时文件,要指定临时文件路径为绝对路径。等同于log处理。

  因为写好的脚本不一定会在哪里被调用,也有可能会被nohup推到后台处理,这个时候临时文件生成的位置不确定,在删除临时文件时会造成错误。

  好的习惯是创建时给出绝对路径,删除时也按照绝对路径删除,确保不会删错,漏删。

  tempfile=${root}/temp.txt

  [ -f ${tempfile} ] && rm -rf ${tempfile}

3. 对公用功能进行提取,写成函数,并扩展。

  如果某些功能经常被使用,可以提取出来单独写成函数,并把函数集合单独拿出来写成函数库。

  并通过 shell 中的source 关键字进行引用。

  source ${root}/../conf/common.sh   #common.sh中实现公用的函数和功能。

posted @ 2017-05-05 16:44  萨尔甘  阅读(307)  评论(0)    收藏  举报