六 Shell指令碼高階程式設計實戰第六部

2022-07-21 05:18:12 字數 2503 閱讀 4873

一、寫乙個start_nginx指令碼,當啟動、停止、重啟時利用系統函式模擬實現系統指令碼啟動的特殊顏色效果 (用if實現)   

#!/bin/sh

. /etc/init.d/functions

if [ $# -ne 1 ]

then

echo "usage $0 "

exit 1

fi

if [ "$1" == "start" ]

then

action "start nginx" /bin/true

elif [ "$1" == "stop" ]

then

action "stop nginx" /bin/true

elif [ "$1" == "restart" ]

then

action "restart nginx" /bin/true

else

echo "usage $0 "

exit 1

fi

結果測試:

二、什麼是函式

簡單的說,就是把程式裡多次呼叫的部分定義成乙份,然後起個名字,對於所有的呼叫,用這個名字就可以了。

優勢:減少程式**量;增加程式的可讀、易讀性;實現程式功能的模組化

三、用 if 和函式 實現  mysql的啟動指令碼

單例項:

3.開發指令碼**:       

#!/bin/sh

. /etc/init.d/functions

user=root

pass=oldboy124

function usage()

[ $# -ne 1 ] && usage

function start_mysql()

function stop_mysql()

if [ "$1" == "start" ]

then

start_mysql

elif [ "$1" == "stop" ]

then

stop_mysql

elif  [ "$1" == "restart"  ]

then

stop_mysql

start_mysql

else

usage

fi

測試:

四、如何將乙個指令碼設定成開機自啟動

例如:將上述指令碼設定成開機自啟動

首先,chkconfig命令可以設定開機自啟動,但是啟動命令必須在/etc/init.d裡面,因為開機自啟動會首先載入這裡面的服務,當我們啟動乙個執行級別下的服務的時候,會通過chkconfig進行服務的管理,系統根據管理進行服務的優先順序啟動,所有如下草圖:

1)在指令碼中加入啟動和關閉的優先順序:如下圖中的

2)將指令碼交給chkconfig管理器

chkconfig --add mysqld

3)進行服務的開啟:

chkconfig  mysqld on

shell指令碼程式設計高階(一)

可以巢狀 分支if 判斷條件 then 條件為真的分支 fiif 判斷條件 then 條件為真的分支 else 條件為假的分支 fiif 判斷條件1 then 條件1為真的分支 elif 判斷條件2 then 條件2為真的分支 elif 判斷條件3 then 條件3為真的分支 else 以上條件都為...

Shell指令碼 程式設計高階03

1 每隔 3 秒鐘到系統上獲取已經登入的使用者的資訊 如果發現使用者 hacker 登入,則將登入時間和主機記錄於日誌 var log login.log 中,並退出指令碼 bin bash while do echo date f t no information if who grep hack...

Shell指令碼 程式設計高階08

1 編寫函式實現兩個數字做為引數,返回最大值maxnum bin bash functions read p please input first digits num1 read p please input second digits num2 max maxnum num1 num2 if m...