【Shell腳本】函數的高級用法

一、函數的定義和使用

第一種格式:

name()

{

    xxxxx

}

第二種格式:

function name

{

    xxxxx

}

調用直接使用函數名調用,函數內部可以直接使用參數$1..

image.png


二、函數傳遞參數

shell中傳參不需要在函數名後面加參數,可以直接在函數中使用參數$1、$2...;調用函數時可直接用 functionname $1 $2..

image.png


三、函數返回值

(1)return:只能返回1-255的整數,供其他地方調用獲取狀態,通常返回0或1:0代表成功,1代表失敗

(2)echo:可以返回任何字符串結果,返回數據。

擴展:

(1)shell中的&&和||

&&左邊的命令(命令1)返回真(即返回0,成功被執行)後,&&右邊的命令(命令2)才能夠被執行;

||則與&&相反。如果||左邊的命令(命令1)未執行成功,那麼就執行||右邊的命令(命令2);

(2)sh -x:腳本調試,顯示腳本執行過程

例1:定義一個函數查看某個進程存在則return0

image.png

image.png

例2:查看系統所有用戶,定義函數返回值

image.png

三、局部變量和全局變量

local:定義局部變量,只能在函數內

函數內和函數外存在同名變量,則函數內會覆蓋外部

image.png

image.png


四、函數庫

經常使用重複的代碼封裝成函數文件,一般由其他腳本調用。

例1:定義一個函數庫,計算器

image.png

我們在一個shell腳本中調用格式 . 文件絕對路徑

image.png

例2:打印系統運行情況函數sys_load,顯示內存運行情況和磁盤的情況。

image.png

在命令行調用函數庫

image.png

擴展:

庫文件後綴通常.lib結尾

庫文件通常沒有x權限即可執行權限

庫文件無需和腳本同級目錄

第一行通常使用 #!/bin/echo,輸出警告信息,避免用戶執行

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