shell腳本制作菜單選擇


 

 

需求:制作一個可選擇的jar包重啟腳本,由於我這邊的jar包在docker內,所以有些復雜,僅做參考

#!/bin/bash

source ~/.bashrc
echo "----------------------------------"
echo -e "\033[35m JAR包名稱序號\033[0m"
echo "(1) gateway-two.jar"
echo "(0) Exit Menu"
echo "----------------------------------"
read -p "請輸入要重新啟動的JAR包序列號:" input

case $input in

    1)
    echo "開始啟動gateway-two.jar"
    sleep 1
    jar=gateway-two
    docker exec -it jar bash -c "sed -i '/jar/d' /root/.bashrc"                     #刪除/root/.bashrc文件的最后一行,以防下面疊加echo時不斷增大
    docker exec -it jar bash -c "echo 'export jar=$jar' >> /root/.bashrc"            #把變量從宿主機外部傳進docker容器內部
docker exec -i jar bash<<'EOF' source /root/.bashrc #使之前傳進來的變量生效,因為下面會用到 pid=`ps -ef|grep ${jar}.jar|grep -v grep|awk '{print $2}'` #獲取jar程序PID號 cd /vrgv/jar/2.0/$jar/ if [ -n "${pid}" ];then kill -9 ${pid} echo "Process $jar killed!" nohup java -jar -Xms265M -Xmx512M ${jar}.jar > /vrgv/jar/2.0/logs/${jar}.log 2>&1 & echo "ReStart $jar Success!" else nohup java -jar -Xms265M -Xmx512M ${jar}.jar > /vrgv/jar/2.0/logs/${jar}.log 2>&1 & echo "Start $jar Success!" fi exit EOF ;; 0) exit;; esac

執行流程:

1.輸入jar包序列號

2.傳變量進docker容器內部

3.判斷jar程序是否存在,存在就殺死重新啟動,不存在則直接啟動

 效果圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM