背景
由於在工作中需要一次性關閉linux的opt目錄下安裝的多個tomcat,因此有了寫乙個指令碼統一關閉開啟這個目錄下所有tomcat的想法
前提 tomcat安裝目錄結構: /opt/tomcat/tomcat_8080;/opt/tomcat/tomcat_9080……
思路 迴圈呼叫tomcat自身bin目錄下的startup.sh、shutdown.sh開啟或是關閉tomcat服務
指令碼 tomctrol.sh
#! /bin/sh
#定義批量處理埠
p=(4080 7080)
#開啟或關閉tomcat伺服器
startorclosetomcat()
#迴圈開啟tomcat
foreachstartup()
dos_res=`/opt/tomcat/*tomcat*$port/bin/startup.sh`
echo "$port-tomcat已經開啟!"
done}
#迴圈關閉tomcat
foreachshutdown()
dos_res=`/opt/tomcat/*tomcat*$port/bin/shutdown.sh`
echo "$port-tomcat已經關閉!"
done}
if [ $# -eq 0 ]
then
echo "請輸入執行引數"
echo " -s 啟動所有/opt/tomcat/下的tomcat"
echo " -c 關閉所有/opt/tomcat/下的tomcat"
else
#echo "start repari .."
startorclosetomcat $1
fi
關於shell指令碼中分號(;)——命令分割符 的使用說明
首先先看幾種寫法,這裡用if語句作為例子。
第一種test()
第二種test1()
第三種test2()
由此可見分號是用來隔斷每個語法關鍵字或命令的 。對於字元的比較及其他shell語法關鍵字之間分號的使用方式相同。需要知道的是在不同的語法命令之間要用分號隔開或是換行方能執行,否則將會在呼叫指令碼的時候報錯。
補充 if語句後的表示式比較變數要與比較操作符用空格分開。if [ 1 -eq 1 ]不能寫成if[ 1 -eq 1 ] 、if [1 -eq 1 ]、if [ 1 -eq 1]、if [ 1-eq1 ]
shell中用arrary=(arr1 arr2 arr3 ……) 的方式宣告陣列
訪問陣列時使用$訪問整個陣列 ,使用$訪問陣列中的某個特定的值
變數賦值時變數名跟等號之間不能有空格
$# ——傳給shell程式的位置引數個數;$0 ——指令碼名稱;$? ——最後命令的完成碼或在shell程式內所執行的shell程式;$n (n>0)——獲取傳遞的第n個引數
cd /opt/tomcat/tomcat*0 * 號代表匹配0..n個字元;cd /opt/tomcat/to?cat ? 號代表匹配1個字元
乙個shell指令碼引發的對於分號的使用說明
在此表示萬分感謝 背景 由於在工作中需要一次性關閉linux的opt目錄下安裝的多個tomcat,因此有了寫乙個指令碼統一關閉開啟這個目錄下所有tomcat的想法 前提 tomcat安裝目錄結構 opt tomcat tomcat 8080 opt tomcat tomcat 9080 思路 迴圈呼...
乙個shell指令碼
之前學過shell指令碼,但是工作中一直沒有用到,今天由於要搞乙個定時任務,為了防止重複啟動php指令碼,就需要寫乙個shell,下面是指令碼內容 bin bash 宣告要使用哪個shell 下面是備註檔案 這可是乙個好習慣奧 date 2012 7 18 version 1.0 設定相關變數 fi...
乙個簡單的Shell指令碼
最近新學linux的shell程式設計。試著寫了乙個遍歷資源目錄的子目錄,每個資源子目錄中拷貝10個檔案到目標目標的小指令碼。沒有什麼技術含量,只是防止自己忘記。bin sh srcroot vsu data2 datasource npm fiveminute srcpath null myroo...