案例一: 开发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服务已经启动,请先关闭再开启"