案例一: 开发shell脚本分别实现定义变量,脚本传参以及read读入的方式比较两个整数大小。用条件表达式(禁止if)进行判断并以屏幕输出方式提醒用户比较结果。注意:一共是开发3个脚本。当用脚本传参以及read读入的方式需要对变量是否为数字做判断.
一>read方式
#!/bin/sh
read -p "Pls input two num:" a b
#no1
[ -z "$a" ] || [ -z "$b" ] &&{
echo "Pls input two num agagin."
exit 1
}
#no1
expr $a + 0 &>/dev/null
RETVAL1=$?
expr $b + 0 &>/dev/null
RETVAL2=$?
test $RETVAL1 -eq 0 -a $RETVAL2 -eq 0||{
echo "Pls input two "num" again."
exit 2
}
#no3
[ $a -lt $b ] &&{
echo "$a < $b"
exit 0
}
#no4
[ $a -eq $b ] &&{
echo "$a = $b"
exit 0
}
#no5
[ $a -gt $b ] &&{
echo "$a > $b"
exit 0
}
二>传参
#!/bin/sh
a=$1
b=$2
#no1
[ -z "$a" ] || [ -z "$b" ] &&{
echo "Pls input two num agagin."
exit 1
}
#no1
expr $a + 0 &>/dev/null
RETVAL1=$?
expr $b + 0 &>/dev/null
RETVAL2=$?
test $RETVAL1 -eq 0 -a $RETVAL2 -eq 0||{
echo "Pls input two "num" again."
exit 2
}
#no3
[ $a -lt $b ] &&{
echo "$a < $b"
exit 0
}
#no4
[ $a -eq $b ] &&{
echo "$a = $b"
exit 0
}
#no5
[ $a -gt $b ] &&{
echo "$a > $b"
exit 0
}
案例二 生产环境中启动住房公积金管理系统脚本
#OUT_LOG_PATH=/home/logs
#cd /home/shineyue/DataService_framework/ >> /dev/null
#echo "Stopping Tomcat and DataService and zookeeper..."
#echo "="
#ps aux|grep com.wasoft.dataserver.DataServer|grep -v grep|awk '{print $2}'|xargs kill -9 > $OUT_LOG_PATH/pslog.log
#ps -ef|grep java|grep -v grep|cut -c 9-15|xargs kill -9 > $OUT_LOG_PATH/pslog.log
#sleep 2
#cd /opt/openfire/bin
#echo "="
#echo "Waiting for openfire start please..."
#echo "="
#nohup ./openfire start 2>&1 | rotatelogs $OUT_LOG_PATH/openfire-%Y-%m-%d-%H-%M.out 50M &
#sleep 5
#cd /home/shineyue/zookeeper-3.4.6/bin
#echo "="
#echo "Waiting for zookeeper start please..."
#echo "="
#nohup ./zkServer.sh start 2>&1 | rotatelogs $OUT_LOG_PATH/zookeeper-%Y-%m-%d-%H-%M.out 50M &
#sleep 5
echo ""
echo "Waiting for bpm-service start please..."
echo "="
echo " "
cd /home/bpm-service >> /dev/null
nohup ./start.sh 2>&1| rotatelogs /home/logs/bpm-service-%Y-%m-%d-%H-%M.out 50M &
sleep 5
echo "="
cd /home/jar/yw/
echo "Waiting for service-framework-0.0.1-SNAPSHOT please..."
echo "="
nohup java -jar -server -Xms1024m -Xmx2048m -XX:PermSize=512M -Xss228k -XX:MaxPermSize=1024M -XX:+PrintGCDetails -Xloggc:./gc.log service-framework-0.0.1-SNAPSHOT.jar -Duser.timezone=Asia/Shanghai 2>&1 | rotatelogs /home/logs/jar-yw-%Y-%m-%d.out 43200 480 &
sleep 5
echo "="
cd /home/jar/wadx/
echo "Waiting for wadx service-framework-0.0.1-SNAPSHOT please..."
echo "="
nohup java -jar service-framework-0.0.1-SNAPSHOT.jar -Xms2048m -Xmx2048m -Duser.timezone=Asia/Shanghai 2>&1 | rotatelogs /home/logs/jar-wadx-%Y-%m-%d.out 43200 480 &
sleep 5
#echo "="
#cd /home/shineyue/zhfwpt
#echo "Waiting for service-framework-0.0.1-SNAPSHOT please..."
#echo "="
#nohup java -jar service-framework-0.0.1-SNAPSHOT.jar -Xms1024m -Xmx1024m -Duser.timezone=Asia/Shanghai 2>&1 | rotatelogs $OUT_LOG_PATH/jar-zhfwpt-%Y-%m-%d.out 43200 480 &
sleep 5
#echo "="
#cd /home/shineyue/wt
#echo "Waiting for service-framework-0.0.1-SNAPSHOT please..."
#echo "="
#nohup java -jar service-framework-0.0.1-SNAPSHOT.jar -Xms512m -Xmx512m -Duser.timezone=Asia/Shanghai 2>&1 | rotatelogs $OUT_LOG_PATH/jar-wt-%Y-%m-%d.out 43200 480 &
sleep 5
#echo "="
#cd /home/shineyue/sms
#echo "Waiting for service-framework-0.0.1-SNAPSHOT please..."
#echo "="
#nohup java -jar service-framework-0.0.1-SNAPSHOT.jar -Xms512m -Xmx512m -Duser.timezone=Asia/Shanghai 2>&1 | rotatelogs $OUT_LOG_PATH/jar-sms-%Y-%m-%d.out 43200 480 &
sleep 5
echo "="
cd /home/DataService_framework
echo "Waiting for DataService start please..."
echo "="
echo ""
nohup ./run.sh 2>&1 | rotatelogs /home/logs/DataService-%Y-%m-%d-%H-%M.out 50M &
sleep 5
cd /home/Tomcat/bin
echo "="
echo "Waiting for Tomcate start please..."
echo "="
nohup ./startup.sh 2>&1 | rotatelogs /home/logs/TomcateServer-%Y-%m-%d-%H-%M.out 50M &
sleep 5
cd /home/archive_ftp/
echo "="
echo "Waiting for FTP start please..."
echo "="
nohup ./startFTP.sh 2>&1 | rotatelogs /home/logs/ftp-%Y-%m-%d.out 43200 480 &
案例三 生产环境中启动住房公积金管理系统脚本优化版本
#!/bin/sh ulimit -n 102400 cd /home/Tomcat/bin tcpid=`netstat -an|grep LISTEN|grep 8080|awk '{print $4}'` tcpid1=`netstat -an|grep LISTEN|grep 8082|awk '{print $4}'` tcpid2=`netstat -an|grep LISTEN|grep 8011|awk '{print $4}'` tcpid3=`netstat -an|grep LISTEN|grep 8012|awk '{print $4}'` tcpid4=`netstat -an|grep LISTEN|grep 21|awk '{print $4}'` tcpid5=`netstat -an|grep LISTEN|grep 8089|awk '{print $4}'` tcpid6=`netstat -an|grep LISTEN|grep 9098|awk '{print $4}'` tcpid7=`netstat -an|grep LISTEN|grep 8015|awk '{print $4}'` tcpid8=`netstat -an|grep LISTEN|grep 8016|awk '{print $4}'` tcpid9=`netstat -an|grep LISTEN|grep 8087|awk '{print $4}'` tcpid10=`netstat -an|grep LISTEN|grep 8066|awk '{print $4}'` tcpid11=`netstat -an|grep LISTEN|grep 8083|awk '{print $4}'` datename=`date +%Y-%m-%d` bpmPath="/home/service-container/" if [ -z "$tcpid" ];then echo "启动tomcat中!复制此命令可查看日志tail -f /home/logs/tomcat-$datename.out" nohup ./catalina.sh run 2>&1 | rotatelogs /home/logs/tomcat-%Y-%m-%d.out 43200 480 & else echo "tomcat已经启动,请先关闭再开启" fi if [ -z "$tcpid5" ];then cd /home/DataService_framework nohup ./run.sh 2>&1 | rotatelogs /home/logs/DataServices-%Y-%m-%d.out 43200 480 & echo "启动DataServices中!复制此命令可查看日志tail -f /home/logs/DataServices-$datename.out" else echo "bpm-service已经启动,请先关闭再开启" fi cd /home/bpm-service ./start.sh echo "启动bpm-service中!复制此命令可查看日志tail -f /home/bpm-service/logs/bpm.log" cd /home/jar/yw/ if [ -z "$tcpid1" ];then echo "启动service-framework中!复制此命令可查看日志tail -f /home/logs/jar-$datename.out" nohup java -jar -server -Xms1024m -Xmx2048m -XX:PermSize=512M -Xss228k -XX:MaxPermSize=1024M -XX:+PrintGCDetails -Xloggc:./gc.log service-framework-0.0.1-SNAPSHOT.jar -Duser.timezone=Asia/Shanghai 2>&1 | rotatelogs /home/logs/jar-%Y-%m-%d.out 43200 480 & else echo "service-framework已经启动,请先关闭再开启" fi cd /home/jar/zhfwpt/ if [ -z "$tcpid2" ];then echo "启动service-framework-zhfwpt中!复制此命令可查看日志tail -f /home/logs/jar-zhtwpt-$datename.out" nohup java -jar -Xms128m -Xmx512m service-framework-0.0.1-SNAPSHOT.jar -Duser.timezone=Asia/Shanghai 2>&1 | rotatelogs /home/logs/jar-zhtwpt-%Y-%m-%d.out 43200 480 & else echo "service-framework-zhfwpt已经启动,请先关闭再开启" fi cd /home/jar/wadx/ if [ -z "$tcpid11" ];then echo "启动service-framework-zjb-0.0.1-SNAPSHOT中!复制此命令可查看日志tail -f /home/logs/jar-wadx-$datename.out" nohup java -jar -Xms128m -Xmx512m service-framework-0.0.1-SNAPSHOT.jar -Duser.timezone=Asia/Shanghai 2>&1 | rotatelogs /home/logs/jar-zjb-%Y-%m-%d.out 43200 480 & else echo "service-framework-wadx已经启动,请先关闭再开启" fi cd /home/jar/12329app/ if [ -z "$tcpid9" ];then echo "启动service-framework-app中!复制此命令可查看日志tail -f /home/logs/jar-app-$datename.out" nohup java -jar -Xms128m -Xmx512m service-framework-0.0.1-SNAPSHOT.jar -Duser.timezone=Asia/Shanghai 2>&1 | rotatelogs /home/logs/jar-app-%Y-%m-%d.out 43200 480 & else echo "service-framework-app已经启动,请先关闭再开启" fi cd /home/jar/wt/ if [ -z "$tcpid7" ];then echo "启动service-framework-wt中!复制此命令可查看日志tail -f /home/logs/jar-wt-$datename.out" nohup java -jar -Xms128m -Xmx512m service-framework-0.0.1-SNAPSHOT.jar -Duser.timezone=Asia/Shanghai 2>&1 | rotatelogs /home/logs/jar-wt-%Y-%m-%d.out 43200 480 & else echo "service-framework-wt已经启动,请先关闭再开启" fi cd /home/jar/dwwt/ if [ -z "$tcpid8" ];then echo "启动service-framework-dwwt中!复制此命令可查看日志tail -f /home/logs/jar-dwwt-$datename.out" nohup java -jar -Xms128m -Xmx512m service-framework-0.0.1-SNAPSHOT.jar -Duser.timezone=Asia/Shanghai 2>&1 | rotatelogs /home/logs/jar-yinlian-%Y-%m-%d.out 43200 480 & else echo "service-framework-dwwt已经启动,请先关闭再开启" fi cd /home/jar/gt if [ -z "$tcpid10" ];then echo "启动service-framework-gt中!复制此命令可查看日志tail -f /home/logs/jar-gt-$datename.out" nohup java -jar -server -Xms1024m -Xmx2048m -XX:PermSize=512M -Xss228k -XX:MaxPermSize=1024M -XX:+PrintGCDetails -Xloggc:./gc.log service-framework-0.0.1-SNAPSHOT.jar -Duser.timezone=Asia/Shanghai 2>&1 | rotatelogs /home/logs/jar-gt-%Y-%m-%d.out 43200 480 & else echo "service-framework-gt已经启动,请先关闭再开启" fi cd /home/archive_ftp/ sh startFTP.sh echo "ftp服务已经启动,请先关闭再开启"
转载于:https://blog.51cto.com/11218855/2115019