基礎知識記錄:java
主要的函數說明:linux
case $變量名稱 in <==關鍵字 case ,還有變量的字號
"第一個變量內容") <==每一個變量建議用雙引號括起來,關鍵爲小括號 )
程式段
;; <==每一個類別結尾用兩個連續的分號來處理
"第二個變量內容")
程式段
;;
*) <==最後一個用 * 來表明其餘值
其餘的程式段
exit 1
;;
esac <== case 結尾,case反過來寫!shell
變量說明:vim
linux中shell變量$#,$@,$0,$1,$2的含義解釋:
$$ Shell自己的PID(ProcessID)
$! Shell最後運行的後臺Process的PID
$? 最後運行的命令的結束代碼(返回值)
$- 使用Set命令設定的Flag一覽
$* 全部參數列表。如"$*"用「"」括起來的狀況、以"$1 $2 … $n"的形式輸出全部參數。
$@ 全部參數列表。如"$@"用「"」括起來的狀況、以"$1" "$2" … "$n" 的形式輸出全部參數。
$# 添加到Shell的參數個數
$0 Shell自己的文件名
$1~$n 添加到Shell的各參數值。$1是第1參數、$2是第2參數。。。bash
例子1 函數
vim ./script.shrest
echo "$1"
echo "$2"
echo "$#"
echo "$(eval echo "/$$#")"
echo "${!#}"
echo "$@"
echo "$*"ip
執行it
chmod +x script.shawk
./script.sh a1 a2 a3 a4 a5
結果以下:
a1
a2
5
/6632#
a5
a1 a2 a3 a4 a5
a1 a2 a3 a4 a5
例子2
#!/bin/bash
case $1 in
男 | M)
echo "靚仔"
;;
女 | F)
echo "靚女"
;;
*)
echo "bye~"
;;
esac
執行
略
結果
略
例子3
未完成
=========================分割線=================================
jar啓動sh
#!/bin/bash
echo ["$1"] "$2ing"
if [ ! -d "./logs" ]; then
mkdir ./logs
fi
now=$(date +%Y%m%d)
log_file="./logs/$1_${now}.log"
command="java -Xms256m -Xmx1024m -jar ./$1.jar"
start(){
if [ "$log_file" != "" ]; then
exec $command > "$log_file" &
else
exec $command &
fi
}
stop(){
ps -ef | grep "$command" | awk '{print $2}' | while read pid
do
C_PID=$(ps --no-heading $pid | wc -l)
echo "當前PID=$pid"
if [ "$C_PID" == "1" ]; then
echo "PID=$pid 準備結束"
kill -9 $pid
echo "PID=$pid 已經結束"
else
echo "PID=$pid 不存在"
fi
done
}
restart(){
stop
start
}
case "$2" in
start)
start
;;
stop)
stop
;;
reload|restart)
restart
;;
*)
printf 'Usage: %s {start|stop|reload|restart}\n' "$prog"
exit 1
;;
esac
執行:
腳本.sh jar文件名 start
腳本.sh jar文件名 stop