2012年11月10日星期六

Shell Script 功能傳回值

Shell Script 是一種簡單,但功能強大的程序
經常出現於 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 使用
否則最後傳回的資料,便會出錯

沒有留言 :

發佈留言