30分鐘玩轉Shell Shell函式

2021-07-24 03:42:40 字數 1391 閱讀 6522

函式可以讓我們將乙個複雜功能劃分成若干模組,讓程式結構更加清晰,**重複利用率更高。像其他程式語言一樣,shell 也支援函式。shell 函式必須先定義後使用。

shell 函式的定義格式如下:

function_name ()
如果你願意,也可以在函式名前加上關鍵字 function:
function function_name ()
函式返回值,可以顯式增加return語句;如果不加,會將最後一條命令執行結果作為返回值。

如果一定要讓函式返回字串,那麼可以先定義乙個變數,用來接收函式的計算結果,指令碼在需要的時候訪問這個變數來獲得函式返回值。

先來看乙個例子:

#!/bin/bash

# define your function here

hello ()

# invoke your function

hello

執行結果:

$./test.sh

hello world

$

呼叫函式只需要給出函式名,不需要加括號。

再來看乙個帶有return語句的函式:

#!/bin/bash

funwithreturn()

funwithreturn

# capture value returnd by last command

ret=

$?echo "the sum of two numbers is $ret !"

執行結果:

the function is to get the sum of two numbers...

input first number: 25

input another number: 50

the two numbers are 25 and 50 !

the sum of two numbers is 75 !

函式返回值在呼叫該函式後通過 $? 來獲得。

再來看乙個函式巢狀的例子:

#!/bin/bash

# calling one function from another

number_one ()

number_two ()

number_one

執行結果:

url_1 is 

url_2 is

像刪除變數一樣,刪除函式也可以使用 unset 命令,不過要加上 .f 選項,如下所示:

$unset

.f function_name

如果你希望直接從終端呼叫函式,可以將函式定義在主目錄下的 .profile 檔案,這樣每次登入後,在命令提示符後面輸入函式名字就可以立即呼叫。

30分鐘玩轉Shell Shell特殊變數

前面已經講到,變數名只能包含數字 字母和下劃線,因為某些包含其他字元的變數有特殊含義,這樣的變數被稱為特殊變數。例如,表示當前shell程序的id,即pid,看下面的 echo 執行結果29949 特殊變數列表 變數 含義 0 當前指令碼的檔名 n傳遞給指令碼或函式的引數。n 是乙個數字,表示第幾個...

30分鐘玩轉Shell Shell輸入輸出重定向

unix 命令預設從標準輸入裝置 stdin 獲取輸入,將結果輸出到標準輸出裝置 stdout 顯示。一般情況下,標準輸入裝置就是鍵盤,標準輸出裝置就是終端,即顯示器。命令的輸出不僅可以是顯示器,還可以很容易的轉移向到檔案,這被稱為輸出重定向。命令輸出重定向的語法為 command file 這樣,...

五分鐘玩轉git

許多人認為git太混亂,或認為它是一種複雜的版本控制系統,其實不然,這篇文章有助於大家快速上手使用git。使用git前,需要先建立乙個倉庫 repository 您可以使用乙個已經存在的目錄作為git倉庫或建立乙個空目錄。使用您當前目錄作為git倉庫,我們只需使它初始化。git init使用我們指定...