1. 程式人生 > 其它 >【我不做人啦!Java!】1.變數、資料型別和運算子

【我不做人啦!Java!】1.變數、資料型別和運算子

技術標籤:shelljardockerbashlinux

需求:製作一個可選擇的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程式是否存在,存在就殺死重新啟動,不存在則直接啟動

效果圖: