您好,登錄后才能下訂單哦!
注:以下內容借鑒于老男孩出版的shell編程實戰這個文檔編寫的。
在shell腳本中,函數類似Linux系統中的命令別名,可以簡化程序的代碼量,讓程序
更易讀、易改、易用。
簡單地說,函數的作用就是將程序里多次被調用的相同代碼組合起來(函數體),并為其取一個名字(即函數名),其他所有想重復調用這部分代碼的地方都只需要調用這個名字就可以了。當需要修改這部分重復代碼時,只需要改變函數體內的一份代碼即可實現對所有調用的修改,也可以把函數獨立地寫到文件里,當需要調用函數時,再加載進來使用。
使用shell函數的優勢如下:
- 把相同的程序段定義成函數,可以減少整個程序的代碼量,提升開發效率;
- 增加程序的可讀性、易讀性,提升管理效率;
- 可以實現程序功能模塊化,使得程序具備通用性(可移植性)。
(1)標準寫法如下:
function 函數名() { #推薦使用此格式,花括號里面寫入的就是要執行的命令
return n
}
(2)簡化寫法如下:
函數名() { #不用function的方法
指令...
return n
}
在shell函數的語法中,function表示聲明一個函數,這部分可以省略不寫。
shell的函數分為最基本的函數和可以傳參的函數兩種,其執行方式分別如下:
(1)執行不帶參數的函數時,直接輸入函數名即可(注意不帶小括號),格式如下:
函數名
有關執行函數的重要說明:
- 執行shell函數時,函數名前的function和函數后的小括號都不要帶;
- 函數的定義必須在要執行的程序前面定義或加載;
- shell執行系統中各種程序的執行順序為:系統別名→函數→系統命令→可執行命令;
- 函數執行時,會和調用它的腳本共用變量,也可以為函數設定局部變量及特殊位置參數;
- 在shell函數里面,return命令的功能和exit類似,return的作用是退出函數,而exit是退出腳本;
- return語句會返回一個退出值(即返回值)給調用函數的當前程序,而exit會返回一個退出值(即返回值)給執行程序的當前shell;
- 如果將函數存放在獨立的文件中,被腳本加載使用時,需要使用source或“.”來加載。
- 在函數內一般使用local定義局部變量,這些變量離開函數后就會消失。
(2)帶參數的函數執行方法,格式如下:
函數名 參數1 參數2
函數后面接參數的說明:
(1)示例1:
[root@localhost ~]# vim a.sh
#!/bin/bash
#以下是定義a和b兩個函數
function a(){
echo "aaaaaaaaaaa"
}
function b(){
echo "bbbbbbbbbbb"
}
b #在腳本中執行函數名以便調用函數,這里先調用了函數b
a #再調用函數a
[root@localhost ~]# sh a.sh #執行結果如下
bbbbbbbbbbb
aaaaaaaaaaa
老男孩編寫的關于shell函數的內容,只有兩個大的腳本沒有寫上來了,建議看原版文檔來了解shell,后面的內容,我沒什么耐心寫了,可以在我博客置頂文章的末尾,下載原版文檔進行學習。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。