Shell脚本模版

1 篇文章 0 订阅

一些情况下,比如使用JDK自带工具包,我们需要进到$JAVA_HOME/bin目录下去执行某个脚本,这时候可以在我们统一存放脚本的目录下写一个简单的脚本,来方便操作

脚本文件均命名为:jutils.sh

直接执行的命令

#!/bin/sh

#进入要执行的脚本目录
cd $JAVA_HOME/bin/

#-z表示字符串为空,-n表示字符串不空,${1}取第一个参数
if [ -z ${1} ]
then
	#ls和cat的默认宽度不一样,ls结果经过cat之后会纵向排列
	ls
	echo '--------------------------------------------'
	#read: usage: read [-ers] [-u fd] [-t timeout] [-p prompt] [-a array] [-n nchars] [-d delim] [name ...](如果之前有定义cmd变量,内容会被覆盖掉)
	read -t 30 -p "Please enter the command:" cmd
else
	cmd=$*
fi

$cmd

使用方法:

$./jutils.sh ./jvisualvm

或者

$./jutils.sh 
appletviewer	java		jcmd		jmc		jstatd		policytool	servertool
apt		javac		jconsole	jps		jvisualvm	rmic		tnameserv
extcheck	javadoc		jdb		jrunscript	keytool		rmid		unpack200
idlj		javafxpackager	jhat		jsadebugd	native2ascii	rmiregistry	wsgen
jar		javah		jinfo		jstack		orbd		schemagen	wsimport
jarsigner	javap		jmap		jstat		pack200		serialver	xjc
--------------------------------------------
Please enter the command:./jvisualvm

后台启动,需要加上nohup,然后保存pid

#!/bin/sh

#进入存放日志及pid文件的目录
cd ~/sh/

#date +%F取日期,+%T取时间
dir=`pwd`"/logs/`date +%F`"

#-e判断路径是否存在,-a与运算符,-d判断文件夹是否存在
if [ -e $dir -a ! -d $dir ];
then
	rm -rf $dir
fi

if [ ! -e $dir ]
then
	#-p创建全目录
	mkdir -p $dir
fi

cd $JAVA_HOME/bin/

#-z表示字符串为空,-n表示字符串不空,${1}取第一个参数
if [ -z ${1} ]
then
	#ls和cat的默认宽度不一样,ls结果经过cat之后会纵向排列
	ls
	echo '--------------------------------------------'
	#read: usage: read [-ers] [-u fd] [-t timeout] [-p prompt] [-a array] [-n nchars] [-d delim] [name ...](如果之前有定义cmd变量,内容会被覆盖掉)
	read -t 30 -p "Please enter the command:" cmd
else
	cmd=$*
fi

#将传进来的参数转化为数组
_array=($cmd)
#${arr[i]}取数组第i位的值
execfilepath=${_array[0]}
#target#pattern最小匹配截取,target##pattern最大匹配截取
filename=${execfilepath##*/}

filepath=$dir"/$filename.log"

#-f判断文件是否存在
if [ -e $filepath -a ! -f $filepath ]
then
	rm $filepath
fi

if [ ! -e $filepath ]
then
	#创建文件
	touch $filepath
fi

pidfilepath=$dir/pid.txt

if [ ! -f $pidfilepath ]
then
	touch $pidfilepath
fi

echo "nohup $cmd>$filepath 2>&1 & echo $!>$pidfilepath"
nohup $cmd>$filepath 2>&1 & echo $!>$pidfilepath

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值