經常出現於 Unix, Linux, BSD 系統,部分 Mac OS 亦會使用 Shell Script 進行設定
相比 Windows 的 Batch,Shell Script 更顯得重要
Shell Script 其簡單的編程,具備高階電腦語言的 function 語法
function 的語法相當簡單
myfunction(){ return 0; } myfunction; echo $?;function 其實可以連傳回值都不需要,但 Shell Script 不接受沒有內部的 function
Shell Script 的 function 連 function 這個 keyword 都不需要使用,亦不需要指定參數數量
Shell Script 只以 $1, $2, $3 ... 作為參數名稱,最多可使用 255 個參數
透過 $? 來獲取 myfunction 的傳回值,這種傳回方式則比較奇怪
但 Shell Script 的 function 只接受整數傳回值
若果 function 以非整數傳回
myfunction(){ return 'hello, world'; } myfunction;便會發生 return hello, world: numeric argument required
就是因為傳回值的型態並非數值
若果需要必須傳回字串等型態的傳回值,需要配合 echo 來模擬
myfunction(){ echo 'hello, world'; } string=`myfunction`; echo $string;雖然語法上比較奇怪,但以這種寫法,便可以傳回字串值
而且這種寫法亦與各種高階電腦語言更像似,使用上可能比原來的語法更順手
不過這種寫法的限制是,使用 function 的中途不能有其他 echo 使用
否則最後傳回的資料,便會出錯
沒有留言 :
張貼留言