写shell工具类,一个常用实例
2024-08-31 06:08:24
简述:
当我们常用到某些指令时,我们就需要将这个命令进行封装。封装的设计和扩展,因人而异。但为了每个人都能够了解到这个命令,常需要写出这个类的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 能够将***打印出来
实例:
#!/bin/bash usage() {
cat <<EOF
usage: $ options OPTIONS:
-d 项目
-v 版本
-p 端口
EOF
} while getopts "hd:v:p:" OPTION
do
case $OPTION in
h) usage; exit ;;
d) project=$OPTARG ;;
v) version=$OPTARG ;;
p) port=$OPTARG ;;
?) usage; exit
esac
done if [[ -z ${project} || -z ${version} || -z ${version} ]]; then
echo "必须指定项目,版本,端口"
exit
fi cd `dirname $` cd ../${project} mkdir -p logs
if [[ -f logs/${project}.log ]]; then
pid=`lsof logs/${project}.log |tail - |awk '{print $2}'`
if [[ -n "$pid" ]]; then
echo "杀掉当前进程: $pid"
kill $pid
fi
else
echo "找不到logs/${project}.log"
fi
最新文章
- python+Eclipse+pydev环境搭建
- linux之PATH环境变量
- struts.xml配置
- mysql 有关的文件
- .net验证码生成及使用
- (C#)使用队列(Queue)解决简单的并发问题
- MongoDB基础之六 索引
- MyBatis记录
- [转载] 说说JSON和JSONP,也许你会豁然开朗
- JSP中的“小饼干”Cookie,用来存储数组的方式(下方已String类型的数组为例:)
- org.apache.commons.lang3.tuple.Pair 作为更新参数,XML 中的 Sql 取不到值、报错
- mongo Shell初体验
- 创建一个 Spring Boot 项目,你会几种方法?
- php正则表达式 剔除字符串中 ,除了汉字的字符(只保留汉字) php 正则 只保留汉字,剔除所有符号
- window.location.replace和window.location.href区别
- Xamarin.Android 使用ListView绑定数据
- 讲一讲Servlet和JSP的关系
- FS210(cortex-A8)移植MT7601无线WIFI模块
- exec可以用来执行语句的
- ASP.NET Core 2 学习笔记(七)路由
热门文章
- Ali-Tomcat在eclipse多开的解决方法
- PHP学习总结(13)——PHP入门篇之常量
- hdu 3714 三分
- 0622通过插件的方式来热安装sphinx
- 0301mysql数据库建表情况
- 洛谷 P3252 [JLOI2012]树
- jQuery Mobile中$.mobile.buttonMarkup方法使用具体解释
- [Cypress] Test React’s Controlled Input with Cypress Selector Playground
- 查找python项目依赖并生成requirements.txt——pipreqs 真是很好用啊
- Node.js:路由