iT邦幫忙

DAY 25
11

快快樂樂學會讓電腦幫我做事系列 第 22

[Shell Script] Day25-提高可讀性之函示寫法(一)

雖說 Shell Script 只是個腳本語言,但是如果功能越加越多,對於 shell script 的可讀性可能就會越來越低,因此我在學習撰寫 shell script 中發現,其實 shell script 也是可以寫 function 的,雖然寫起來感覺跟C++或Java那種不太一樣,但對於提升 shell script 的可讀性來說,是大大的提升許多。
雖說 Shell Script 只是個腳本語言,但是如果功能越加越多,對於 shell script 的可讀性可能就會越來越低,因此我在學習撰寫 shell script 中發現,其實 shell script 也是可以寫 function 的,雖然寫起來感覺跟C++或Java那種不太一樣,但對於提升 shell script 的可讀性來說,是大大的提升許多。唯一要注意的是,因為 shell script 不需要經過編譯器(compiler)編譯,所以要呼叫 function 之前,一定要先定義該 function ,不能像 Java 或其他程式語言一樣,把 function 寫在後面,一定要寫在呼叫該 function 之前。

Shell script function 的定義方式如下:

function_name(){
	# function 內容
}
…
…
# 呼叫 function _name
function_name

夠簡單了吧!!讚

那麼就讓我們把昨天的例子,改用函示寫過,看看是不是真的提高可讀性了!

#!/bin/bash


TriggerAutoBuildMyProject(){
    #用 wget 去開啟網頁,觸發自動建置,不是真的需要網頁的內容
    wget http://192.168.0.2:8080/jenkins/job/MyProject/build?token=TriggerBuild
    # 因為使用 wget 去抓網頁,會留下不需要的檔案,所以刪掉他
    rm build?token*
}

# workspace variables
MyProjectLog=/home/pajace_chen/Perforce_Check/MyProjectUpdateLog.log

# Perforce workspace
export MyProjectWorkspace=MyProject

# Perfoce 指令
P4COMMAND=/usr/local/bin/p4

# 要登入 Perfroce 所需的環境變數
export P4CLIENT=$MyProjectWorkspace
export P4PASSWD=1234567890
export P4USER=pajace2001
export P4PORT=192.168.0.1:1666

# 這一步驟是要登入 perforce
echo $P4PASSWD | $P4COMMAND login >&2

# 這一步驟是要將 p4 sync 的結果 assign 給OUTPUT 這個變數
OUTPUT=$($P4COMMAND sync 2>&1)

# 指定 log file 檔案名稱
LOG_FILE=$ MyProjectLog

# 如果執行 p4 sync 的結果有包含 MyProject 就去觸發自動建置功能
if [[ "$OUTPUT" =~ //MyProject* ]]
then
		# 用 echo 記錄一些相關資料
        echo "`date`: My Project 的程式碼有更動." >> $LOG_FILE
        echo "`date`: 觸發自動建置功能" >> $LOG_FILE
		# 將執行 p4 sync 的結果寫到 log 檔案中
        echo "$OUTPUT" >> $LOG_FILE
        
		# 這行應該不用註解吧 ^_^”,(只有修改這裡)
		TriggerAutoBuildMyProject
else
		# 沒有程式碼更動也寫一下 log 好做偵錯時使用
        echo "`date`: MyProject 中沒有程式碼更動. Output: $OUTPUT" >> $LOG_FILE
fi
$P4COMMAND logout

有沒有!我只有做一個動作,就是把觸發自動建置的那兩行拉出來成一個 function ,是不是是覺得那段的可讀性提高了呢?明天再繼續囉~~你會發現,可讀性是越來越高! 讚

鐵人賽文章分享
上一篇 ShellScript真實案例練習之實做
下一篇 提高可讀性之函示寫法(二)


上一篇
[Shell Script] Day24-ShellScript真實案例練習之實做
下一篇
[Shell Script] Day26-提高可讀性之函示寫法(二)
系列文
快快樂樂學會讓電腦幫我做事27
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
鐵殼心
iT邦高手 1 級 ‧ 2013-10-16 12:20:46

拍手

pajace2001 iT邦研究生 1 級 ‧ 2013-10-16 18:12:59 檢舉

謝謝

我要留言

立即登入留言