作为一个运维人员编写Shell脚本是很平常的,一个格式好的脚本不仅赏心悦目,后期自己和别人也易于维护。

  下面的脚本就是我自己的shell编写格式,如下:

 [root@mini05 -]# cat template.sh
#!/bin/sh
################ Version Info ##################
# Create Date: --
# Author: Zhang
# Mail: zhang@xxxx.com
# Version: 1.0
# Attention: shell脚本模板
################################################ # 加载环境变量
# 如果脚本放到crontab中执行,会缺少环境变量,所以需要添加以下3行
. /etc/profile
. ~/.bash_profile
. /etc/bashrc # 脚本所在目录即脚本名称
script_dir=$( cd "$( dirname "$" )" && pwd )
script_name=$(basename ${})
# 日志目录
log_dir="${script_dir}/log"
[ ! -d ${log_dir} ] && {
mkdir -p ${log_dir}
} errorMsg(){
echo "USAGE:$0 arg1 arg2 arg3"
exit
} doCode() {
echo $
echo $
echo $
} main() {
if [ $# -ne ];then
errorMsg
fi
doCode "$1" "$2" "$3"
} # 需要把隐号加上,不然传入的参数就不能有空格
main "$@"

测试如下:

 [root@mini05 -]# ./template.sh
USAGE:./template.sh arg1 arg2 arg3
[root@mini05 -]# ./template.sh
USAGE:./template.sh arg1 arg2 arg3
[root@mini05 -]# ./template.sh '222 333'
USAGE:./template.sh arg1 arg2 arg3
[root@mini05 -]# ./template.sh '222 333' "444 555" [root@mini05 -]# ./template.sh '222 333' "444 555" ""
USAGE:./template.sh arg1 arg2 arg3

Shell脚本常用模板的更多相关文章

  1. shell脚本常用技巧

    shell脚本常用技巧 1.获取随机字符串或数字 ~]#echo $RANDOM | md5sum | cut -c 1-6 ~]#openssl rand -base64 4 | cut -c 1- ...

  2. shell脚本常用参数

    shell 脚本 常用参数 #!/bin/sh # 在脚本第一行脚本头 # sh为当前系统默认shell,可指定为bash等shell sh -x # 执行过程 sh -n # 检查语法 (a=bbk ...

  3. Shell 脚本常用命令

    Shell脚本是Linux开发工作中常用的工具,但是我一直没有找到一个适合自己的简明扼要的HandBook.在工作过程中整理了一下,贴在这里已备查看. 1           Shell中的特殊符号 ...

  4. SHELL 脚本----常用的命令

    一个很不错的bash脚本编写教程,至少没接触过BASH的也能看懂   建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行she ...

  5. shell 脚本常用调试方法

    曾经我刚开始学习 shell 脚本时,除了知道用 echo 输出一些信息外,并不知道其他方法,仅仅依赖 echo 来查找错误,比较难调试且过程繁琐.效率低下.本文介绍下我常用的一些 shell 脚本调 ...

  6. shell脚本常用命令汇总

    一.shell脚本概述和入门 (1)shell脚本是一个命令行解释器,它接收应用程序/用户命令,然后调用操作系统内核 (2)shell脚本的常用执行方式: 第一种:采用bash或sh+脚本的相对路径或 ...

  7. Shell脚本常用命令简介

    格式化日期yyyy-mm-dd hh:mm:ss显示 date "+%Y-%m-%d %H:%M:%S" 将内容写入到新文件 echo "hello">a ...

  8. Linux入门——shell脚本常用信息小结

    1.shell中的$默认变量    $n           $1 表示第一个参数,$2 表示第二个参数 ...    $#           命令行参数的个数    $0           当前 ...

  9. linux shell脚本常用语句

    linux shell 指令 诸如-d, -f, -e之类的判断表达式: 文件比较运算符-e filename  如果 filename存在,则为真  [ -e /var/log/syslog ]-d ...

随机推荐

  1. 简化开发:Lombok的使用

    Java中优雅的使用Lombok 1.简介 Lombok 是一种 Java实用工具,可用来帮助开发人员消除Java的冗长,尤其是对于简单的Java对象(POJO), 它通过注释实现这一目的.一个标准的 ...

  2. 二叉树的Python实现

    树的定义与基本术语   树型结构是一类重要的非线性数据结构,其中以树和二叉树最为常用,是以分支关系定义的层次结构.树结构在客观世界中广泛存在,如人类社会的族谱和各种社会组织机构:在计算机领域中也有广泛 ...

  3. ListView的setOnItemClickListener位置错乱问题

    如果你对一个ListView同时addHeaderView(listhHeaderView),也就是头部视图,再加setAdapter,当你加上setOnItemClickListener事件后你会发 ...

  4. [转]Angular4 数据请求 POST、GET

    本文转自:https://blog.csdn.net/dailuwen/article/details/79375980 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog ...

  5. 第一册:lesson twenty-one.

    原文:Which book? A:Give me a book please,B. B:Which book? This one? A:No,not that one. The red one. B: ...

  6. WPF,强制捕获鼠标事件,鼠标移出控件外依然可以执行强制捕获的鼠标事件

    在WPF中,只有鼠标位置在某个控件上的时候才会触发该控件的鼠标事件.例如,有两个控件都注册了MouseDown和MouseUp事件,在控件1上按下鼠标,不要放开,移动到控件2上再放开.在这个过程中,控 ...

  7. mybatis_ The content of element type association must match (constructor,id,result,ass ociation,collection,discriminator)

    一般遇到这种问题肯定要看一看association中元素编写顺序, <resultMap id="orderRslMap" type="orders"&g ...

  8. ACM ICPC 2017 Warmup Contest 9 I

    I. Older Brother Your older brother is an amateur mathematician with lots of experience. However, hi ...

  9. CSS背景和CSS列表

    ------------------------------ div{            background: red;            width: 300px;            ...

  10. Your local changes to the following files would be overwritten by merge:

    在服务器改动之后,用sourcetree提交会产生冲突,解决办法: