Skip to content

Functions

Shell Functions

創建函數

有兩種創造函數的方式

function name {
    commands
}

name()
{
    commands
}
使用函數,與其他shell命令依樣寫出函數名即可

如果試圖在函數被定義前使用,會收到錯誤訊息

command not found

返回值

Shell會在函數結束時返回一個退出狀態碼,默認為函數內 最後一個命令 的退出狀態

我們可以使用return 指定退出狀態,要注意 1. 函數一執行結束就立刻讀取其值 2. 退出狀態必須介於 0~255

我們也可以把函數輸出賦予給變量

#!/bin/bash
function foo
{
    read -p "enter a value :" value
    echo $[ $value * 2 ]
}

result=$(foo)
echo "The new value is $result"

函數內變量的處理方式也同樣分為全域變量與區域變量 如果不需要在函數內使用全域變量,可以加入local關鍵字

local temp

local temp$[ $value + 5 ]

創建函式庫

使用函式庫的關鍵在於source命令,source會在當前shell的上下文執行命令,而不是創建新的shell並在其中執行命令

source命令有個別名,稱為 點號操作符 ,要在shell腳本中運行myfunc函式庫,只需添加下列代碼

. ./myfunc
若路徑不同,則需要使用正確路徑去引入函式庫