標記:開始學習while迴圈
檢視本地的8080埠的應用是否已啟用:
curl -s -o index.jsp -m 2 localhost:8080/shop/index.jsp
#!/bin/bash
n=0while [ $n -lt 5 ]; do
let n++
echo $n
done
#迴圈讀取檔案的一行,然後輸出 read命令讀取到資料,狀態是0,條件為真,讀取不到資料則條件為假
cat ./catalina.out | while read line ; do
echo $line
done
#另一種方法
while read line2 ; do
echo $line2
done <./catalina.out
#永真條件的三種表示
while :; do
echo "yes"
done
while true ; do
echo "yes"
done
while [ 1 -eq 1 ] ; do
echo "yes"
done
#跳出當前迴圈和終止迴圈
continue break
n2=0
while true; do
let n2++
if [ $n2 -eq 5 ]; then
break
fiecho $n2
done
#continue
n3=0
while [ $n3 -lt 5 ]; do
let n3++
if [ $n3 -eq 3 ]; then
continue
fiecho $n3
done
case的學習實踐:啟動tomcat指令碼 ./tomcat.sh 8080 start
#!/bin/bash
# function :scripts is for tomcat stop/start 8080-8089
tomcat_bash_dir=/u02
function usage()
" exit 1
} case $2 in
start)
if [ $1 == all ]; then
for i in $(seq 8080 8089)
do [ -f $tomcat_bash_dir/tomcat$i/bin/shutdown.sh ] && $tomcat_bash_dir/tomcat$i/bin/shutdown.sh >/dev/null 2>&1
[ -f $tomcat_bash_dir/tomcat$i/bin/startup.sh ] && $tomcat_bash_dir/tomcat$i/bin/startup.sh
done
else
[ -f $tomcat_bash_dir/tomcat$1/bin/shutdown.sh ] && $tomcat_bash_dir/tomcat$1/bin/shutdown.sh >/dev/null 2>&1
[ -f $tomcat_bash_dir/tomcat$1/bin/startup.sh ] && $tomcat_bash_dir/tomcat$1/bin/startup.sh
fi;;
stop)
echo "stop!"
if [ $1 == all ] ; then
for i in $(seq 8080 8089)
do [ -f $tomcat_bash_dir/tomcat$i/bin/shutdown.sh ] && $tomcat_bash_dir/tomcat$i/bin/shutdown.sh >/dev/null 2>&1 && echo "stop $i"
done
else
[ -f $tomcat_bash_dir/tomcat$1/bin/shutdown.sh ] && $tomcat_bash_dir/tomcat$1/bin/shutdown.sh >/dev/null 2>&1 && echo "stop $1"
fi;;
*)usage
;;esac
exit 0
select和unitl語句的語法:
select variable in list
do迴圈體,可以用break終止
done
主要作用:用於建立選單,按數字順序排列list,使用者輸入儲存在變數reply中
#!/bin/bash
ps3="提示語:"
select menu in start stop restart quit
do # $reply 儲存的是所選選單的第幾項
# case $reply in
case $menu in
start)
echo "the tomcat while be start"
;;stop)
echo "the tomcat while be stop"
;;restart)
echo "the tomcat while be restart"
;;quit)
break
;;*)
echo "no the option"
esac
done
ps3="提示語:"
select menu in start stop restart quit
do # $reply 儲存的是所選選單的第幾項 如輸入 1 則執行start
case $reply in
# case $menu in
1)echo "the tomcat while be start"
;;2)
echo "the tomcat while be stop"
;;3)
echo "the tomcat while be restart"
;;4)
break
;;*)
echo "no the option"
esac
done
unitl 迴圈條件 ; do
迴圈體done
使用:迴圈條件為真時,一直執行迴圈體;為假時,結束迴圈(和while相反)
檢測8080埠,一旦發現就殺掉8080的程序
#!/bin/bash
until ps -ef |grep 8080|grep -v grep &> /dev/null; do
sleep 0.5
done
kill -9 $(ps -ef|grep -ef 8080|grep -v grep|awk '')
until pgrep -u tomcat &> /dev/null; do
sleep 0.5
done
pkill -9 -u tomcat
第五章:函式和陣列
函式的定義:function fun()
fun#返回值只能是0-255 的數字
func()
func
echo $?
#遞迴呼叫
test()
test
#遞迴使用時,一定要有終止條件 深水炸彈
bomb() ;
bomb陣列:陣列元素間使用空格作為分割符
格式: array=(元素 1 元素 2 元素 3 ...)
array=(a b c)
array=($(command))
array[下標]=元素
#!/bin/bash
arr=(1 2 3 4)
#獲取陣列長度 字串的長度 $
echo $
#獲取陣列所有元素
echo $
#獲取元素下標:
echo $
#獲取對應下標的元素
echo $
#新增元素
arr[4]=e
#新增多個元素,陣列和陣列可以直接加,構成乙個新陣列
arr+=(f g h)
#刪除元素
unset arr[0]
#刪除陣列
unset array
#遍歷陣列,依次啟動tomcat
ports=(8080 8081 8082 8083)
for port in $ ; do
./starttomcat $port
done
for (( i=0;i<$ ; i++)) ; do
echo $
done
Linux學習(Shell指令碼)
bin bash 必須的,指出shell的型別 注釋 變數控制 vi mkdir.sh bin bash this is mkdir cd home mkdir shelltest echo shelltest is created.將檔案賦予可執行的許可權 指令碼檔案 注意 1 檔名 在當前目錄下...
linux學習 shell指令碼
shell是命令和硬體之間的橋梁 shell的工作方式分為兩種 互動式 批處置 互動式 使用者一次輸入一條命令,shell翻譯並執行一條 批處理 使用者將多條命令構成乙個shell指令碼,執行指令碼時,shell一次執行全部的命令,shell指令碼是將各種命令通過邏輯語句組合而成的程式 1 檢視系統...
Linux學習之shell指令碼
第一行 bin bash 標記指令碼的直譯器 指令碼 bin bash echo hello world 賦予執行許可權 chmod x test.sh 執行指令碼 test.sh 定義變數時不需要 符號 td date y m d 1.變數名和符號之間不能有空格 2.首個字元必須為字母 3.中間不...