简述:

当我们常用到某些指令时,我们就需要将这个命令进行封装。封装的设计和扩展,因人而异。但为了每个人都能够了解到这个命令,常需要写出这个类的help。

关键字:

函数、getopts

函数

通过自定义函数(可参阅:http://www.runoob.com/linux/linux-shell-func.html),能够实现过程操作、输入捕获(read)、输出获取(return)。

getopts

为了获取用户在命令下的参数,通过该命令来操作(可参阅:https://blog.csdn.net/xluren/article/details/17489667)。

用法:getopts option_string variable ,第一个参数option_string :命令参数的集合;第二个参数variable:输入的参数

对于参数集合,选项之间可以通过冒号“:”进行分隔,也可以直接相连接。如果参数前有“:”则表示选项后面必须带有值(可通过OPTARG获取),如果没有可以不加实际值进行传递

cat

cat << EOF  *** EOF  能够将***打印出来

实例:

 1 #!/bin/bash
 2
 3 usage() {
 4 cat <<EOF
 5 usage: $0 options
 6
 7 OPTIONS:
 8   -d 项目
 9   -v 版本
10   -p 端口
11 EOF
12 }
13
14 while getopts "hd:v:p:" OPTION
15 do
16   case $OPTION in
17     h) usage; exit 1 ;;
18     d) project=$OPTARG  ;;
19     v) version=$OPTARG  ;;
20     p) port=$OPTARG  ;;
21     ?) usage; exit 1
22   esac
23 done
24
25 if [[ -z ${project} || -z ${version} || -z ${version} ]]; then
26     echo "必须指定项目,版本,端口"
27     exit 1
28 fi
29
30 cd `dirname $0`
31
32 cd ../${project}
33
34 mkdir -p logs
35 if [[ -f logs/${project}.log ]]; then
36     pid=`lsof logs/${project}.log |tail -1 |awk '{print $2}'`
37     if [[ -n "$pid" ]]; then
38         echo "杀掉当前进程: $pid"
39         kill $pid
40     fi
41 else
42     echo "找不到logs/${project}.log"
43 fi

转载于:https://www.cnblogs.com/SunHuaJ/p/10442169.html

写shell工具类,一个常用实例相关推荐

  1. Java学习笔记Day06 工具类及常用算法

    第六章 工具类及常用算法 文章目录 第六章 工具类及常用算法 Java语言基础类 Java基础类库 Object类 概述 toString方法 方法摘要 覆盖重写 equals方法 方法摘要 默认地址 ...

  2. 【Android 插件化】Hook 插件化框架 ( 反射工具类 | 反射常用操作整理 )

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

  3. java des 加密工具的使用,Java中DES加密解密工具类的实现实例

    这篇文章主要介绍了Java实现的DES加密解密工具类,结合具体实例形式分析了Java实现的DES加密解密工具类定义与使用方法,需要的朋友可以参考下 本文实例讲述了Java实现的DES加密解密工具类.分 ...

  4. calendar类_不要再自己写 Java 工具类了,这些开源的不香吗?

    本文收集各种 Java 常用工具类,包括字符串.日期.集合/数组.IO.计时等. 1 字符串 1.1 StringUtils Maven 依赖信息: <dependency> <gr ...

  5. 什么是java工具类_常用高效 Java 工具类总结

    一.前言 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码 ...

  6. java web 常用工具类_Javaweb常用工具类及配置文件备份

    做一个代码备份,以后常用到的. hibernate工具类备份 package com.dly.service; /* * hibernate获取session 的工具类 */ import java. ...

  7. 汉字转拼音 java_Java汉字转拼音工具类完整代码实例

    添加依赖 com.belerweb pinyin4j 2.5.1 工具类代码: public class PinYinUtils { public static HanyuPinyinOutputFo ...

  8. md5 java 工具类_Java常用工具类——MD5

    importorg.apache.commons.codec.binary.Hex;importjava.nio.charset.Charset;importjava.security.Message ...

  9. java中IO写文件工具类

    以下是一些依据经常使用java类进行组装的对文件进行操作的类,平时,我更喜欢使用Jodd.io中提供的一些对文件的操作类,里面的方法写的简单易懂. 当中jodd中提供的JavaUtil类中提供的方法足 ...

  10. okhttp 工具类_HR常用的人才测评工具 ~ 团测系统

    如果说是人才测评软件,这个好像是有不少的,粗略估计国内不止10个吧!要说是测评用的测试量表,这个就有限了,用的比较多的基本上是知名的测试量表,如:mbti,卡特尔,艾森克,大五人格,disc 等等.. ...

最新文章

  1. Debian 下如何安装 Java
  2. ajax 文件数据流,Ajax如何读取数据流中的xml文件?
  3. python 中文查找_使用python和regex查找字符串中的所有中文文本
  4. breeze源码阅读心得
  5. 请说明一下MyBatis中命名空间(namespace)的作用是什么?
  6. Java黑皮书课后题第3章:*3.17(游戏:剪刀、石头、布)编写可以玩流行的剪刀-石头-布游戏的程序
  7. Python循环遍历(cycle)
  8. Dart教程(四):语法
  9. 全网最全计算机二级C语言知识总结,还不快来白嫖
  10. Android自定义Dialog的Match_parent无效问题解决
  11. raw的服务器镜像是什么系统,如何将Ceph Raw格式镜像转换成Qcow2格式并上传云平台创建云主机...
  12. Jenkins远程命令执行漏洞(CVE-2018-1000861)
  13. 接触mybatisplus单页500条限制_单页网站制作教程,单页网站设计五大技巧
  14. 理解高阶函数,修炼编程内功
  15. AlphaGo人肉臂黄士杰:我的使命完成 阿尔法狗项目结束 | 重磅
  16. 【TIC6657 DSP学习笔记】02 RTSC平台配置组件创建
  17. 2022.10.10
  18. 什么是Socks5代理?
  19. AutoHotKey的那些事儿:(一)、AutoHotkey常用命令
  20. NodeJS简介-node.js是什么?

热门文章

  1. 拓端tecdat|R语言实现LASSO回归——自己编写LASSO回归算法
  2. 拓端tecdat|探析大数据期刊文章研究热点
  3. Linux中文件目录写法
  4. r语言算巢式设计方差分析_R语言入门之效力分析(Power Analysis)
  5. 利用卷积神经网络(CNN)提取图片特征
  6. pyspark分类算法之决策树分类器模型实践【decisionTreeClassifier】
  7. python求解简单加密问题,实现对输入的密文加密
  8. $(#).html(ftl) js 动态引入宏定义,FTL惯用标签及语法
  9. DP之石子堆合并问题
  10. 2022-2-20stream流的复习