给你的shell脚本写一个--help文档

Posted 生信媛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了给你的shell脚本写一个--help文档相关的知识,希望对你有一定的参考价值。

我们来看看效果:

当我们输入-h或者--help时,弹出帮助文档。

给你的shell脚本写一个--help文档

当我们输入-v或者--version时,弹出版本信息:

给你的shell脚本写一个--help文档


而当正确输入参数-p/--path和-n/--name同时存在时,程序会根据参数新建一个目录:

给你的shell脚本写一个--help文档

给你的shell脚本写一个--help文档

可以看到新建的目录如下:

当参数有误时,给出报错信息:


下边是具体实现的代码:

#!/bin/bash

help()
{
   cat <<- EOF
  Desc: 用于新建文件夹目录
  Usage: ./mkdir.sh (-D 待分析文件路径) (-n 输出文件夹名称)
  Author: 阿秭
  程序选项如下:
   
   -h --help       打印本帮助文档并退出
   
   -v --version   打印本程序版本信息并退出
   
   -p --path       新建文件夹的所在路径
                   
   -n --name       文件夹名称

  License: 无
   
EOF
   exit 0
}

version_info()
{
cat <<- EOF
   mkdir.sh v1_20190318
   
EOF
   exit 0
}

echo
while [ -n "$1" ];do #这里通过判断$1是否存在
  case $1 in
   -p|--path) path=$2 # $2才是我们希望输出的参数
  shift 2;; # 将参数后移2个,进入下一个参数的判别
   -n|--name) name=$2
  shift 2;;
   -h|--help) help;; # function help is called
   -v|--version)version_info;;
   --) shift;break;; # end of options
   -*) echo "error: no such option $1."; exit 1;;
  *) break;;
   esac
done

if [ -n "$path" -o -n "$name" ];then
   mkdir -p "$path"/"$name"
   echo '你新建的目录为:'$path/$name
   echo
fi

将mkdir.sh变为可执行文件

chmod +x mkdir.sh


# 测试代码

./mkdir.sh -h
./mkdir.sh -v
./mkdir.sh -p ./data -n test

参考资料

  • 编写可接受选项和参数的shell脚本:https://blog.csdn.net/z1037561063/article/details/80410060

  • shell case语句及函数:https://blog.csdn.net/u010265663/article/details/71190713

  • 在Bash shell脚本编程中,如何正确无误获取到“脚本选项参数”和“脚本参数”呢?:https://blog.51cto.com/13791715/2153566

  • Shell脚本:命令选项参数处理:https://blog.csdn.net/hanlizhong85/article/details/78008845

  • 详解Linux shell命令帮助格式:https://blog.csdn.net/littlewhite1989/article/details/54425071

  • shell 编程 帮助功能的实现:https://blog.csdn.net/hejinjing_tom_com/article/details/79946427

  • linux shell 之if-------用if做判断:https://www.cnblogs.com/wangluochong/p/9207421.html


以上是关于给你的shell脚本写一个--help文档的主要内容,如果未能解决你的问题,请参考以下文章

写shell脚本的一种开头方式,给你的脚本加个保险

Python如何调用别人写好的脚本

想请大神写一个在linux环境下用shell脚本控制jar的启动和停止,类似于一个后台服务那种的。

Linux 自己写了个脚本 怎么设置脚本直接能双击打开

Shell脚本——添加和删除用户

编写脚本,如何实现自动ftp到相应的环境,并下载相应的文件(shell)