首页 > bash脚本求修改

bash脚本求修改

程序运行格式为 mono /opt/Release/XXX.exe 配置文件目录。程序开启后会打开一个tcp端口。
写了一个超级笨的脚本,是实现多个程序实例一键开启的。脚本通过目录是否存在和端口连接是否为零来判断某个程序实例激活状态。

#!/bin/sh
mono=`which mono`
Release_DIR="/opt/Release"
exe="${Release_DIR}/XXX.exe"
###########
server2_DIR="/opt/server2"
server3_DIR="/opt/server3"
server4_DIR="/opt/server4"
server5_DIR="/opt/server5"
server6_DIR="/opt/server6"
server7_DIR="/opt/server7"
server8_DIR="/opt/server8"
server9_DIR="/opt/server9"
server10_DIR="/opt/server10"
s2=`netstat -ant|grep 0:5001|wc -l`
s3=`netstat -ant|grep 0:5002|wc -l`
s4=`netstat -ant|grep 0:5003|wc -l`
s5=`netstat -ant|grep 0:5004|wc -l`
s6=`netstat -ant|grep 0:5005|wc -l`
s7=`netstat -ant|grep 0:5006|wc -l`
s8=`netstat -ant|grep 0:5007|wc -l`
s9=`netstat -ant|grep 0:5008|wc -l`
s10=`netstat -ant|grep 0:5009|wc -l`
if [ -d ${server2_DIR} ]; then
        if [ $s2 -eq 0 ]; then screen -dmS S2 $mono $exe ${server2_DIR}/ > /dev/null 2>&1;fi
fi
if [ -d ${server3_DIR} ]; then
        if [ $s3 -eq 0 ]; then screen -dmS S3 $mono $exe ${server3_DIR}/ > /dev/null 2>&1;fi
fi
if [ -d ${server4_DIR} ]; then
        if [ $s4 -eq 0 ]; then screen -dmS S4 $mono $exe ${server4_DIR}/ > /dev/null 2>&1;fi
fi
if [ -d ${server5_DIR} ]; then
        if [ $s5 -eq 0 ]; then screen -dmS S5 $mono $exe ${server5_DIR}/ > /dev/null 2>&1;fi
fi
if [ -d ${server6_DIR} ]; then
        if [ $s6 -eq 0 ]; then screen -dmS S6 $mono $exe ${server6_DIR}/ > /dev/null 2>&1;fi
fi
if [ -d ${server7_DIR} ]; then
        if [ $s7 -eq 0 ]; then screen -dmS S7 $mono $exe ${server7_DIR}/ > /dev/null 2>&1;fi
fi
if [ -d ${server8_DIR} ]; then
        if [ $s8 -eq 0 ]; then screen -dmS S8 $mono $exe ${server8_DIR}/ > /dev/null 2>&1;fi
fi
if [ -d ${server9_DIR} ]; then
        if [ $s9 -eq 0 ]; then screen -dmS S9 $mono $exe ${server9_DIR}/ > /dev/null 2>&1;fi
fi
if [ -d ${server10_DIR} ]; then
        if [ $s10 -eq 0 ]; then screen -dmS S10 $mono $exe ${server10_DIR}/ > /dev/null 2>&1;fi
fi

现在自己把###########下面的代码写到一个循环里面,但修改后无法执行。故在此求高人指点。

for a in `seq 2 10`
do	let s$a=`netstat -ant|grep 0:500$[$a-1]|wc -l`
	if [ -d /opt/server$a ]; then
		if [ s$a -eq 0 ]; then
			screen -dmS S$a $mono $exe /opt/server$a/ > /dev/null 2>&1;fi
	fi
done

#!/bin/sh
for a in `seq 2 10`
do
    b=`netstat -ant|grep 0:500$((a-1))|wc -l`

    if [ -d /opt/server$a ]; then
        if [ $b -eq 0 ]; then
            screen -dmS S$a $mono $exe /opt/server$a/ > /dev/null 2>&1;
        fi
    fi
done
【热门文章】
【热门文章】