(14)shell 函式以及函式引數

2021-07-09 19:52:55 字數 2269 閱讀 3695

函式可以讓我們將乙個複雜功能劃分成若干模組,讓程式結構更加清晰,**重複利用率更高。

shell 函式必須先定義後使用。

function_name () 

如果你願意,也可以在函式名前加上關鍵字 function:

function

function_name ()

注意:

函式返回值,可以顯式增加return語句;如果不加,會將最後一條命令執行結果作為返回值。

shell 函式返回值只能是整數,一般用來表示函式執行成功與否,0表示成功,其他值表示失敗。

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

#!/bin/bash

# define your function here

hello

() # invoke your function

hello

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

乙個帶有return語句的函式:

#!/bin/bash

funwithreturn

()funwithreturn

# capture value returnd by last command

ret=$?

echo

"the sum of two numbers is $ret !"

$? 可以獲取上乙個命令的退出狀態,在這裡也就是函式funwithreturn最後退出狀態。

#!/bin/bash

# calling one function from another

number_one

() number_two

() number_one

指令碼直接呼叫number_one,在number_one中呼叫number_two

執行結果:

url_1 is

url_2 is

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

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

在shell中,呼叫函式時可以向其傳遞引數。

在函式體內部,通過 n的

形式來獲

取引數的

值,例如

, 1表示第乙個引數,$2表示第二個引數…

帶引數的函式示例:

funwithparam() !"

echo "the value of the eleventh parameter is $ !"

echo "the amount of the parameters is $# !"

# 引數個數

echo "the string of the parameters is $* !"

# 傳遞給函式的所有引數

}funwithparam 123

4567

893473

the value of

thefirst parameter is

1 !the value of

thesecond parameter is

2 !the value of

thetenth parameter is

10 !

the value of

thetenth parameter is

34 !

the value of

the eleventh parameter is

73 !

the amount of

the parameters is

12 !

the string

ofthe parameters is12

3456

78934

73 !"

注意,10不能

獲取第十

個引數,

獲取第十

個引數需

要 。當n>=10時,需要使用$來獲取引數。

特殊變數 說明

$# 傳遞給函式的引數個數。

$* 顯示所有傳遞給函式的引數。

$@ 與 (2)相同,但是略有區別,請檢視shell特殊變數。

$? 函式的返回值。

Python 函式以及引數傳遞

函式簡介 function 函式也是乙個物件 物件是記憶體中專門用來儲存資料的一塊區域 函式可以用來儲存一些可執行的 並且可以在需要時,對這些語句進行多次的呼叫 建立函式 def 函式名 形參1,形參2,形參n 塊 函式名必須要符號識別符號的規範 可以包含字母 數字 下劃線 但是不能以數字開頭 函式...

Tensorflow函式以及引數說明

tf.nn.conv2d input,filter,strides,padding,use cudnn on gpu none,name none 第乙個引數input 指需要做卷積的輸入影象,它要求是乙個tensor,具有 batch,in height,in width,in channels ...

C main函式以及入口引數詳解

一 main函式的基本介紹 1 main函式是工程的入口主函式。二 main函式的示例 1 示例一 include int main 2 示例二怕 譚浩強 c語言程式設計 第四版 10.7.3 include int main argc,char argv 3 示例三 include int mai...