shell脚本编程经验

2025-10-20 18:46:04

本人从以下几个方面说明shell脚本编程经验,带领新手入门shell的编程规范

# 简短的使用帮助

# 输入参数的检查和赋值

# 环境变量的维护

# 输出和日志

其他编程方面的注意事项,如流程控制,变量引用格式,函数返回值的定义等,

需要大家从经验从不断的积累和思考

工具/原料

linux系统环境:包含centos,ubuntu等linux发行版

bash环境

方法/步骤

简短的使用帮助

动机 : 

一般的程序都需要有帮助信息,在参数检查失败的时候,给出提示

参考例子:

filename=$0

usage() {

        echo $filename -b  -c 10 [ -i cluster|single ]

        echo -ne "-b \t 必选 意义 ;"  

echo -ne "-c num \t 必选 意义 ;"

echo -ne "-i cluster|single \t 可选 意义 ;"

}

输入参数的检查和赋值

动机 : 

一般的程序都需要对输入的参数进行有效性检查,出现问题的时候,给出帮助提示,正确的时候,使用输入对程序的变量进行赋值

参考例子:

arg_i=""

arg_j=""

while getopts "i:j:" arg

do

    case $arg in

    i)

    arg_i="$OPTARG"

    ;;

    j)

    arg_j="$OPTARG"

    ;;

    ?)

    { usage; exit 1; }

    ;;

    esac

done

环境变量的维护

动机 : 

某些程序需要修改环境,如进入其他目录,修改字符集变量等;比较优雅的处理方式是程序结束之后,对这些环境变量进行还原

参考例子:

# 保存环境变量

old_lang=$LANG

old_dir=`pwd`

# 修改环境变量

export.UTF-8

cd /

# 还原环境变量

export LANG=${old_lang}

cd ${old_dir}

输出和日志

动机 : 

为了日志的美观和统一性,可以统一定义日志输出的格式,如加上日志输出的时间

参考例子(日志内容之前加上时间戳):

ret_status="OK"

echo -e `date "+%F %T"` " cluster switch is ${ret_status} "

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢