写shell工具类,一个常用实例
简述:
当我们常用到某些指令时,我们就需要将这个命令进行封装。封装的设计和扩展,因人而异。但为了每个人都能够了解到这个命令,常需要写出这个类的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工具类,一个常用实例相关推荐
- Java学习笔记Day06 工具类及常用算法
第六章 工具类及常用算法 文章目录 第六章 工具类及常用算法 Java语言基础类 Java基础类库 Object类 概述 toString方法 方法摘要 覆盖重写 equals方法 方法摘要 默认地址 ...
- 【Android 插件化】Hook 插件化框架 ( 反射工具类 | 反射常用操作整理 )
Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...
- java des 加密工具的使用,Java中DES加密解密工具类的实现实例
这篇文章主要介绍了Java实现的DES加密解密工具类,结合具体实例形式分析了Java实现的DES加密解密工具类定义与使用方法,需要的朋友可以参考下 本文实例讲述了Java实现的DES加密解密工具类.分 ...
- calendar类_不要再自己写 Java 工具类了,这些开源的不香吗?
本文收集各种 Java 常用工具类,包括字符串.日期.集合/数组.IO.计时等. 1 字符串 1.1 StringUtils Maven 依赖信息: <dependency> <gr ...
- 什么是java工具类_常用高效 Java 工具类总结
一.前言 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码 ...
- java web 常用工具类_Javaweb常用工具类及配置文件备份
做一个代码备份,以后常用到的. hibernate工具类备份 package com.dly.service; /* * hibernate获取session 的工具类 */ import java. ...
- 汉字转拼音 java_Java汉字转拼音工具类完整代码实例
添加依赖 com.belerweb pinyin4j 2.5.1 工具类代码: public class PinYinUtils { public static HanyuPinyinOutputFo ...
- md5 java 工具类_Java常用工具类——MD5
importorg.apache.commons.codec.binary.Hex;importjava.nio.charset.Charset;importjava.security.Message ...
- java中IO写文件工具类
以下是一些依据经常使用java类进行组装的对文件进行操作的类,平时,我更喜欢使用Jodd.io中提供的一些对文件的操作类,里面的方法写的简单易懂. 当中jodd中提供的JavaUtil类中提供的方法足 ...
- okhttp 工具类_HR常用的人才测评工具 ~ 团测系统
如果说是人才测评软件,这个好像是有不少的,粗略估计国内不止10个吧!要说是测评用的测试量表,这个就有限了,用的比较多的基本上是知名的测试量表,如:mbti,卡特尔,艾森克,大五人格,disc 等等.. ...
最新文章
- Debian 下如何安装 Java
- ajax 文件数据流,Ajax如何读取数据流中的xml文件?
- python 中文查找_使用python和regex查找字符串中的所有中文文本
- breeze源码阅读心得
- 请说明一下MyBatis中命名空间(namespace)的作用是什么?
- Java黑皮书课后题第3章:*3.17(游戏:剪刀、石头、布)编写可以玩流行的剪刀-石头-布游戏的程序
- Python循环遍历(cycle)
- Dart教程(四):语法
- 全网最全计算机二级C语言知识总结,还不快来白嫖
- Android自定义Dialog的Match_parent无效问题解决
- raw的服务器镜像是什么系统,如何将Ceph Raw格式镜像转换成Qcow2格式并上传云平台创建云主机...
- Jenkins远程命令执行漏洞(CVE-2018-1000861)
- 接触mybatisplus单页500条限制_单页网站制作教程,单页网站设计五大技巧
- 理解高阶函数,修炼编程内功
- AlphaGo人肉臂黄士杰:我的使命完成 阿尔法狗项目结束 | 重磅
- 【TIC6657 DSP学习笔记】02 RTSC平台配置组件创建
- 2022.10.10
- 什么是Socks5代理?
- AutoHotKey的那些事儿:(一)、AutoHotkey常用命令
- NodeJS简介-node.js是什么?
热门文章
- 拓端tecdat|R语言实现LASSO回归——自己编写LASSO回归算法
- 拓端tecdat|探析大数据期刊文章研究热点
- Linux中文件目录写法
- r语言算巢式设计方差分析_R语言入门之效力分析(Power Analysis)
- 利用卷积神经网络(CNN)提取图片特征
- pyspark分类算法之决策树分类器模型实践【decisionTreeClassifier】
- python求解简单加密问题,实现对输入的密文加密
- $(#).html(ftl) js 动态引入宏定义,FTL惯用标签及语法
- DP之石子堆合并问题
- 2022-2-20stream流的复习