Linux命令行與shell腳本(13)--在函數中使用普通變量

基本的腳本函數

  • 創建和使用函數
function fun1(){
        echo "This is a function echo";
}
count=1;
while(( count <= 5 ))
do
        fun1;  #調用函數
        count=$[ $count + 1 ];
done
echo "End";
  • bash shell會把函數當作小型腳本,運行結束時會返回一個退出狀態碼。默認情況下,函數的退出狀態碼是函數中最後一條命令返回的退出狀態碼。
  • bash shell使用return命令來退出函數並返回特定的退出狀態碼
function db1(){
        read -p "Enter a value:" value
        echo "Doubling the value";
        return $[ $value * 2 ];
}

function db2(){
        read -p "Enter a value:" value
        echo $[ $value * 2 ]
}

db1
echo "The new value is $?"

result=`db2`; #函數返回值賦值給result
echo "The new value is $result";

在函數中使用變量

  • 函數可以使用標準的參數環境變量來代表命令行上傳給函數的參數。例如,函數名會在0 1,2 #來判斷傳給函數的參數數目
function addem(){
        if (( $# == 0 )) || (( $# > 2 ))
        then
                echo -1;
        elif (( $# == 1 ))
        then
                echo $[ $1 + $1 ];
        else
                echo $[ $1 + $2 ];
        fi
}

echo -n "Adding 10 and 15:";
value=`addem 10 15`;
echo $value;  #25
echo -n "Let's try adding just on number:";
value=`addem 20`;
echo $value;  #40
echo -n "Now tring adding no number:";
value=`addem`;
echo $value; #-1
  • 使用local關鍵字在函數中設置局部變量 local temp=$[ $value + 5 ]

函數遞歸

function factorial(){

        local param=$1;
        if (( param == 1 ))
        then
                echo 1
        else
                local temp=$[ $param - 1 ];
                local result=`factorial $temp`;
                echo $[ $param * $result ];
        fi

}

factorial 5 #120

創建庫

  • 使用函數庫的關鍵在於source命令,該命令會在當前的shell上下文中執行命令,而不是創建一個新的shell來執行命令,source可以使用快捷方式 . ./myfuncs
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章