zoukankan      html  css  js  c++  java
  • 写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
  • 相关阅读:
    cookie简介
    Javaweb
    apache-tomcat-7.0.92
    学javaweb 先学Servlet 应用理论很重要
    DataGuard切换(主库为Rac+备库为Rac)
    Oracle 迁移 序列
    oracle SQL 执行进度
    ORA-20011 ORA-29913 KUP-11024 GATHER_TABLE_STATS
    盘点 Oracle 11g 中新特性带来的10大性能影响
    查询近一个月的表空间使用情况
  • 原文地址:https://www.cnblogs.com/SunHuaJ/p/10442169.html
Copyright © 2011-2022 走看看