shell腳本編程之函數

  在編寫腳本時經常會遇到某個任務需要重復使用的問題,需每次都要輸入同樣的代碼是件挺煩人的事情,還好可以通過編寫函數還簡化這項工作。

  函數其實就是給一段代碼起個名字,在每次使用這段代碼的時候可以直接使用函數名來調用就可以了。

一、創建函數

  創建函數的格式有兩種:

  格式1:function 函數名{

        函數體

       }

  格式2:函數名(){

        函數體

       }

  調用函數時直接寫函數名即可。

二、使用函數

1.jpg

   上例中在一開始定義了名為test的函數,然后直接使用函數名調用即可。

三、函數的返回值

  1、執行狀態返回值:函數體中最后一次執行的命令狀態結果;

2.jpg

  函數執行成功,返回值為默認的0。

  2、自定義執行狀態返回值

   可以使用return命令來定義狀態返回值,狀態值的取值范圍為0-255。

5.jpg

四、接受參數的函數

  函數也可以帶入參數,如下面的實例所示:

5.jpg

  函數中引用了兩個參數,則在使用函數時需要手動將參數傳遞過去,如圖中標注處。

6.jpg

五、創建函數庫文件

  可以將自定義的函數保存在一個的文件中,在需要時可以直接調用所需要的函數。

  下面是自定義的一個庫文件:

1.jpg

  在腳本中使用這個庫文件中的函數:

2.jpg

  腳本的運行結果:

3.jpg

  也可以在命令行中來使用自定義的函數,只需要在bash shell啟動時讀取這個庫文件。

  在~/.bashrc文件中添加庫文件:

4.jpg

  在命令行中直接使用自定義的函數:

6.jpg

原創文章,作者:petmaster,如若轉載,請注明出處:http://www.www58058.com/10766

(0)
petmasterpetmaster
上一篇 2016-01-05 12:59
下一篇 2016-01-05 13:00

相關推薦

  • 馬哥教育網絡班21期+第七周博客作業

    1、創建一個10G分區,并格式為ext4文件系統;    (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;    (2) 掛載至datamydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳 [root@ns1 ~]# m…

    Linux干貨 2016-08-24
  • linux路由轉發(軟路由)實驗

        一。實驗網絡拓撲             (R1,R2由 Linux 虛擬機添加雙網卡做軟路由實現)              &n…

    Linux干貨 2016-09-05
  • 磁盤管理

    設備文件 I/O Ports: I/O 設備地址 一切皆文件: open(), read(), write(), close() 設備類型: 塊設備:block ,存取單位“塊”,磁盤 [root@localhost ~]# ll /dev/ brw-rw—-. 1 root disk 253, 0 Apr 29 03:53 dm-0 塊設備 brw-r…

    2017-04-28
  • N22-第三周作業

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 # who|cut -d' ' -f1|sort|uniq # root 2、取出最后登錄到當前系統的用戶的相關信息。 # last|head -n 1 # …

    Linux干貨 2016-08-29
  • 第三周作業

    博客具體內容請移步博客園: http://www.cnblogs.com/ITOps/p/6204549.html

    Linux干貨 2016-12-20
  • 從零開始搭建雙主模型的nginx proxy高可用集群

    實驗簡介 本文主要介紹雙主模型的nginx proxy高可用集群的搭建方式。實驗環境: 使用nfs/ftp服務器,nfs提供頁面數據共享,ftp提供程序下載 使用單獨的mariadb服務器提供關系型數據庫 使用兩臺httpd服務器提供頁面服務,包括靜態的html和動態的php(phpmyadmin、wordpress、phpinfo) 使用兩臺nginx作為…

    Linux干貨 2017-06-25
欧美性久久久久