Bash指令碼程式設計(四)之Shell函式

2021-05-22 18:11:32 字數 2095 閱讀 7991

淘品牌 dm雜誌

清倉** 韓版 李孝利 歐美復古羅馬鬥士 涼鞋 高跟鞋 實拍

58.0元

bash

的shell

函式是一種能把若干

unix/linux

命令打包執行的方法,在執行時乙個簡單的名字就能夠代替這些命令。執行函式就像執行普通的

unix

命令一樣簡單。

bash

會在當前上下文的環境中執行

shell

函式,而不再產生新的程序去解釋函式。

bash alias

別名和函式都能幫你為長或複雜的命令定義快捷方式。但是,

alias

別名不允許控制流,引數,以及其他有技巧的事情。而這些事情,函式都能做到。我們將會在下面講解。

這篇文章是我們正在進行的

bash

指令碼程式設計系列的一部分。你可以檢視前三篇文章:

bash

指令碼程式設計簡介,

bash

的退出狀態,以及

bash alias

別名。定義乙個

bash

函式的語法如下:

例1:乙個顯示指定字尾名檔案的長列表的函式

函式「l***t

」可以查詢當前目錄下的指定字尾名的檔案。函式體內使用了

find和ls

命令。 例2

:乙個能夠對一組檔案執行指定命令的函式

下面的例子中,函式「

batchexec

」先找到指定字尾名的檔案,再對這些檔案執行指定的命令。

在上面的例子中,函式找到所有以

.sh為字尾名的指令碼,並且把指令碼的許可權修改為

755。在函式體內,

$表示第二個以及接下來的位置引數。例3

:能夠生成隨機密碼的函式

下面的函式能夠根據特定的字元生成給定長度的高強度隨機密碼。如果長度未被指定,那麼預設生成

12字元長的密碼。

在上面的例子中,當

rpass

的引數為

6時,函式生成字串長度為

6的隨機密碼。當

rpass

無引數時,那麼函式生成

12字元長度的密碼。

$表示如果

$1未定義或空時,

12被返回,否則

$1被返回。例4

:返回給定介面的

ip位址的函式

下面的例子定義了乙個函式「

getip

」以介面為引數,返回該介面的

ip位址(預設返回介面

eth0的ip

位址)。函式體內使用了

ifconfig

命令。 例5

:列印機器資訊的函式

此例定義了乙個能夠顯示機器所有需要資訊的函式。使用者可以在啟動檔案中定義並呼叫該函式,以便於在啟動時得到這些資訊。 例

6:格式化

ls命令輸出

函式首先清屏,然後將游標置於螢幕頂端,接著執行

ls命令,最後再把游標置於螢幕底部。 使用

type

命令返回函式類別

type

是乙個內建函式,可以返回函式類別。

syntax:

type function-name

為了讓你更方便的參考,你在這裡得到上面的

6個函式。

將這些函式放在你的

~/.bash_profile

檔案中,這樣就可以保證一直能夠使用這些函式。

函式能夠接受引數。在執行過程中,函式的引數會被賦值給

bash

的特殊變數:位置引數。引數

$0代表指令碼的名字,是不能被改變的的。

在命令列中,你能像下面這樣呼叫乙個函式。

清倉** 韓版 李孝利 歐美復古羅馬鬥士 涼鞋 高跟鞋 實拍

58.0元

淘品牌 dm雜誌

Shell指令碼之Bash內部命令

本文是自己學習的總結,僅以作分享。若有不對的地方歡迎指正。bash內部命令 有些內部命令在目錄列表是看不見的,他們有shell本身提供,常用的內部命令有 echo eval exec export readonly read shift wait exit和 echo 將變數名錶指定的變數顯示到標準...

Shell程式設計 bash

shell是使用者與linux作業系統溝通的橋梁,也是一種用c語言編寫的程式,同時也是命令解釋程式的統稱。使用者既可以輸入命令執行,也可以利用shell指令碼程式設計,用以完成更加複雜的操作。時至今日,shell程式設計仍然起著不可忽視的作用,深入地了解和熟練地掌握shell程式設計,對更好地了解和...

Shell指令碼程式設計基礎之shell指令碼退出狀態碼

exit 在指令碼中本身是退出的作用 根據程式執行的結果,返回對應的狀態碼,幫助實現條件判斷 21 15 48 root c8 3 55 grep q root etc passwd echo grep q admin etc passwd echo grep q root abc echo gre...