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中实现公用的函数和功能。
浙公网安备 33010602011771号