Shell Script function 函式

本篇 ShengYu 介紹 Shell Script function 函式寫法,腳本寫多了自然有很多邏輯是重複的,這時候就可以用 function 將這些重複邏輯抽取出來放在一個函式裡,提昇程式碼的重複利用性,另一方面是邏輯太複雜時,適時地包裝成函式能夠提昇程式的易讀性,在多人開發的環境下很能夠體會這件事。

以下的 Shell Script function 函式用法與範例將分為這幾部分,

  • Shell Script function 函式基本寫法
  • Shell Script function 傳遞參數
  • Shell Script function 回傳值
  • Shell Script function 回傳字串

以下就開始介紹 Shell Script function 函式寫法吧!

Shell Script function 函式基本寫法

Shell Script 最簡單的 function 函式寫法如下,每個函式名稱前面有個 function 關鍵字表示這邊是函式,

shellscript-function.sh
1
2
3
4
5
6
7
#!/bin/bash

function myfunc() {
echo "hello world"
}

myfunc

輸出如下,

1
hello world

沒有寫 function 關鍵字也可以,

shellscript-function-2.sh
1
2
3
4
5
6
7
#!/bin/bash

myfunc() {
echo "hello world"
}

myfunc

Shell Script function 傳遞參數

Shell Script function 要傳遞參數的用法如下,用 "$1" 來取出第一個參數,用 "$2" 來取出第二個參數,依此類推,

shellscript-function-3.sh
1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash

function myfunc1() {
echo "myfunc1 $1"
}

function myfunc2() {
echo "myfunc2 $1 $2"
}

myfunc1 "aaa"
myfunc2 "aaa" "bbb"

輸出如下,

1
2
myfunc1 aaa
myfunc2 aaa bbb

Shell Script function 回傳值

Shell Script function 用 return 關鍵字來回傳值,return 只能回傳數字,$? 代表 function 的回傳值,

shellscript-function-4.sh
1
2
3
4
5
6
7
8
#!/bin/bash

function myfunc() {
return 5
}

myfunc
echo Return value is $?

輸出如下,

1
Return value is 5

根據上述例子,我們可以來作個加法的函式,然後傳回結果值,範例如下,

shellscript-function-5.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/bash

function myadd() {
return $(($1+$2))
}

myadd 3 4
retval=$?
echo "Return value is $retval"

myadd 6 8
retval=$?
echo "Return value is $retval"

輸出如下,

1
2
Return value is 7
Return value is 14

Shell Script function 回傳字串

基本上 Shell Script function 是無法用 return 關鍵字來回傳字串的,但是可以透過其它方式來回傳字串,方法如下,

shellscript-function-6.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/bash

function myfunc1() {
echo "myfunc1: hello world"
}

function myfunc2() {
local retval="myfunc2: hello world"
echo "$retval"
}

val1=$(myfunc1)
echo "val1=$val1"

val2=$(myfunc2)
echo "val2=$val2"

輸出如下,

1
2
val1=myfunc1: hello world
val2=myfunc2: hello world

以上就是 Shell Script function 函式的用法與範例介紹,
如果你覺得我的文章寫得不錯、對你有幫助的話記得 Facebook 按讚支持一下!
下一篇介紹 讀取 txt 文字檔

其它參考
How to Return a String from Bash Functions – Linux Hint
https://linuxhint.com/return-string-bash-functions/

其它相關文章推薦
Shell Script 新手入門教學
Shell Script 四則運算,變數相加、相減、相乘、相除
Shell Script if 條件判斷
Shell Script for 迴圈
Shell Script while 迴圈
Shell Script 讀檔,讀取 txt 文字檔