91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

shell函數介紹及使用

發布時間:2020-06-21 03:41:20 來源:網絡 閱讀:458 作者:warrent 欄目:系統運維

注:以下內容借鑒于老男孩出版的shell編程實戰這個文檔編寫的。


一、什么是函數?

在shell腳本中,函數類似Linux系統中的命令別名,可以簡化程序的代碼量,讓程序
更易讀、易改、易用。

簡單地說,函數的作用就是將程序里多次被調用的相同代碼組合起來(函數體),并為其取一個名字(即函數名),其他所有想重復調用這部分代碼的地方都只需要調用這個名字就可以了。當需要修改這部分重復代碼時,只需要改變函數體內的一份代碼即可實現對所有調用的修改,也可以把函數獨立地寫到文件里,當需要調用函數時,再加載進來使用。

使用shell函數的優勢如下:

  • 把相同的程序段定義成函數,可以減少整個程序的代碼量,提升開發效率;
  • 增加程序的可讀性、易讀性,提升管理效率;
  • 可以實現程序功能模塊化,使得程序具備通用性(可移植性)。

二、shell函數的語法

(1)標準寫法如下:

function 函數名() {       #推薦使用此格式,花括號里面寫入的就是要執行的命令
    return n
}

(2)簡化寫法如下:

函數名() {                     #不用function的方法
    指令...
    return n
}

在shell函數的語法中,function表示聲明一個函數,這部分可以省略不寫。

三、shell函數的執行

shell的函數分為最基本的函數和可以傳參的函數兩種,其執行方式分別如下:

(1)執行不帶參數的函數時,直接輸入函數名即可(注意不帶小括號),格式如下:

函數名

有關執行函數的重要說明:

  • 執行shell函數時,函數名前的function和函數后的小括號都不要帶;
  • 函數的定義必須在要執行的程序前面定義或加載;
  • shell執行系統中各種程序的執行順序為:系統別名→函數→系統命令→可執行命令;
  • 函數執行時,會和調用它的腳本共用變量,也可以為函數設定局部變量及特殊位置參數;
  • 在shell函數里面,return命令的功能和exit類似,return的作用是退出函數,而exit是退出腳本;
  • return語句會返回一個退出值(即返回值)給調用函數的當前程序,而exit會返回一個退出值(即返回值)給執行程序的當前shell;
  • 如果將函數存放在獨立的文件中,被腳本加載使用時,需要使用source或“.”來加載。
  • 在函數內一般使用local定義局部變量,這些變量離開函數后就會消失。

(2)帶參數的函數執行方法,格式如下:

函數名 參數1 參數2

函數后面接參數的說明:

  • shell的位置參數($1、$2...、$#、$?及$@)都可以作為函數的參數來使用;
  • 此時父腳本的參數臨時地被函數參數所掩蓋或隱藏;
  • $0比較特殊,它仍然是父腳本的名稱;
  • 當函數執行完成時,原來的命令行腳本的參數即可恢復;
  • 函數的參數變量是在函數體里面定義的。

四、shell函數的基礎使用舉例

(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,后面的內容,我沒什么耐心寫了,可以在我博客置頂文章的末尾,下載原版文檔進行學習。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永昌县| 仪征市| 安国市| 镇沅| 舒城县| 七台河市| 邮箱| 东海县| 余江县| 桃源县| 万源市| 凤山市| 札达县| 忻城县| 萍乡市| 文化| 成武县| 福贡县| 克什克腾旗| 晋州市| 新沂市| 贵溪市| 垦利县| 盐边县| 萨迦县| 崇信县| 化隆| 沂水县| 贵溪市| 阿拉善左旗| 阜新市| 林芝县| 蓬莱市| 林口县| 永寿县| 新丰县| 武强县| 称多县| 德州市| 裕民县| 读书|