利用 function 功能

2021-08-26 04:28:39 字數 2254 閱讀 6477

什麼是『函式 (function)』功能啊?簡單的說,其實, 函式可以在 shell script 當中做出乙個類似自訂執行命令的東西,最大的功能是,

可以簡化我們很多的程式碼~

function 的語法是這樣的:

function

fname()

那個 fname 就是我們的自訂的執行命令名稱~而程式段就是我們要他執行的內容了。要注意的是,因為shell script 的執行方式是由上而下,由左而右, 因此在 shell script 當中的 function 的配置一定要在

程式的最前面

, 這樣才能夠在執行時被找到可用的程式段喔!我們將之前的指令碼改寫成自訂乙個名為 printit 的函式來使用喔:

#!/bin/bash

#use function to repeat information

function printit()

echo "this program will print your selcetion!"

case $1 in

"one")

printit;echo $1 | tr 'a-z' 'a-z'#將引數做大小寫替換

;;

"two")

printit;echo $1 | tr 'a-z' 'a-z'

;;"three")

printit;echo $1 | tr 'a-z' 'a-z'

;;*)

echo "usage:$0 "

;;esac

我們來測試一下:

[oracle@99bill-as9 zy]$ sh function.sh oh

this program will print your selcetion!

usage:function.sh

[oracle@99bill-as9 zy]$ sh function.sh one

this program will print your selcetion!

your choice is :one

[oracle@99bill-as9 zy]$ sh function.sh two

this program will print your selcetion!

your choice is :two

[oracle@99bill-as9 zy]$ sh function.sh three

this program will print your selcetion!

your choice is :three

另外, function 也是擁有內建變數的~他的內建變數與 shell script 很類似, 函式名稱代表示 $0 ,而後續接的變數也是以 $1, $2... 來取代的~ 這裡很容易搞錯喔~因為『function fname() 』內的 $0, $1... 等等與 shell script 的 $0 是不同的。以上面指令碼來說,假如我下達:『 sh function.sh one 』 這表示在 shell script 內的 $1 為 "one" 這個字串。但是在 printit() 內的 $1 則與這個 one 無關。 我們將上面的例子再次的改寫一下,讓你更清楚!

#!/bin/bash

#use function to repeat information.

function printit()

case $1 in

"one")

printit 1

;;"two")

printit 2

;;"three")

printit 3

;;*)

echo "usage:$0 "

;;esac

測試結果:

[oracle@99bill-as9 zy]$ sh function2.sh

usage:function2.sh

[oracle@99bill-as9 zy]$ sh function2.sh one

your choice is 1

[oracle@99bill-as9 zy]$ sh function2.sh two

your choice is 2

[oracle@99bill-as9 zy]$ sh function2.sh three

your choice is 3

[oracle@99bill-as9 zy]$

DedeCms的高階功能function擴充套件

為了使用模板標記不破壞文件的可讀性,dedecms不像別的模板,有時會使用直接往模板插入php或類似php的 以達到真正的模板與程式分離的特點。鞍山白癜風的預防方法www.0412r.com 但為了讓程式有更大的擴充套件性,dedecms答應對標記使用 function 進行擴充套件,functio...

Boost庫 功能介紹 function物件

boost庫是乙個非常強大的c 基礎庫,是c 標準的預先實驗場地,裡面有非常多的標準c 所沒有的擴充套件功能,非常實用。本文重點介紹boost庫中function的用法。它以物件的形式封裝了原始的函式指標或函式物件,能夠容納任意符合函式簽名的可呼叫物件。介紹function物件本身不是目的,只是為後...

shell 指令碼之 Function 功能的使用

bin bash function rmsg 輸出紅色 gmsg 輸出綠色 bmsg 輸出藍色 rmsg 紅色 gmsg 綠色 bmsg 藍色 我們看一下輸出結果 輸出紅色 gmsg 輸出綠色 bmsg 輸出藍色 rmsg 紅色 紅紅 gmsg 綠色 綠綠 bmsg 藍色 藍藍 接著再執行一下,看看...