Shell中自定義函數、函數參數及案例講解

目錄
一、shell中自定義函數語法
二、shell函數參數
三、案例實戰

函數是把一個功能封裝起來,使用時直接調用函數名,這樣的腳本好處:模塊化,代碼可讀性強,擴展性方便

在案例實戰部分會具體講解,不帶參數的shell函數,帶參數的shell函數。

一、shell中自定義函數語法

1、shell中自定義函數語法
2、如何調用函數

1、shell中自定義函數語法

在shell 中有兩種定義函數的語法格式,分別爲:

語法1:
function_name ()
{
    command
    command
    ....
    command
}

語法2(這樣比較規範):
function function_name()
{
   command
   command
   ....
   command
}

----------------------------------------------------------------------
舉例1:
function fun1(){
    echo "hello shell!"
}
fun1 #調用函數
fun1
----------------------------------------------------------------------
舉例2:
demoFun(){
    echo "這是我的第一個 shell 函數!"
}
echo "-----函數開始執行-----"
demoFun #調用函數

2、如何調用函數

1)直接使用函數名調用,可以將其想象成Shell中的一條命令
2)函數內部可以直接使用參數$1 $2 $n,調用函數:function_name $1 $2

二、shell函數參數

和 C++、Python等大部分編程語言不同,Shell 中的函數在定義時不能指明參數,但是在調用時卻可以傳遞參數。

在函數體內部,可以通過 $n 的形式來獲取參數的值,例如,$1表示第一個參數,$2表示第二個參數,依次類推。

案例1
#!/bin/bash
#定義函數
function show(){
    echo "變量1: $1"
    echo "鏈接: $2"
    echo "作者: "$3
    echo "總共參數個數$# "
}
echo "-----------第一次調用函數-----------------"
show a "www.baidu.com" Tom
echo "-------------第二次調用函數----------------"
show b "www.naixue.com" Jack

說明:

(1)如果函數體內部指定了參數,在調用該函數時需要傳參。

參考文檔1:Shell函數參數
參考文檔2:Shell腳本函數定義和函數參數

三、案例實戰

1、定義一個函數,調用該函數時可打印hello shell!

不帶參數的函數

#!/bin/bash
function fun1(){
    echo "hello shell!"
}

fun1 #調用函數
fun1
fun1
fun1
2、更新中

最近在知乎看了個回答,喜歡上面的三句話,分享給大家也勉勵自己。

1、強及時反饋會害了自己,比如今天寫SQL面試題,構思了4個小時還無從下筆,我在想是不是應該解決Shell自定義函數問題,寫書對我是個很好的實戰機會,畢竟以後自己也要寫書,在難也要堅持下去;比如在學習大數據的時候,這個過程太漫長了,遠得看不見終點
2、《向上生長》談慢啓動。人想進步,最難的地方,就是隨時想放棄,爲什麼想放棄呢?因爲看不見進展,不知道自己在進步。而人不管幹什麼事都有一個慢啓動過程,也就是一開始沒什麼效果,比如我已經持續寫下一百多萬字,可是當我寫前一百萬字的時候,完全沒人理我,但是我寫道第二個一百萬字的時候,人們就圍過來了。
慢啓動這事,要理解事務發展內在邏輯,要學會不計後果地去做某件事…………相信大家跟我一樣,不管做什麼事,如果做一段時間,沒什麼感覺,也不太順利,就開始懷疑自己沒天賦。 這種想法是錯誤的,你一個普通人,你有啥天賦,你最應該考慮的問題是:
1)現在是慢啓動階段,要什麼自行車?
2)數量都不夠,要什麼效果?
3、社會競爭並不是需要你比所有人都強——絕大部分人又懶又俗,幾年都不進步,所以你稍微努力一些,確保超過全社會60%的人。

下週開始做數倉項目,想去有大數據公司的做數倉。比如極米科技。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章