Shell腳本函數(shù)傳遞參數(shù)的實(shí)現(xiàn)方法
如何傳遞參數(shù)到Shell腳本函數(shù)
通常,在其他腳本語(yǔ)言中,您可以將參數(shù)和參數(shù)作為function_name(parameter1, parameter2,…)傳遞給函數(shù),這在shell腳本函數(shù)中不支持。在shell腳本函數(shù)中,您可以在函數(shù)調(diào)用期間直接傳遞參數(shù),而無(wú)需在函數(shù)定義中定義它們的名稱,并直接使用位置參數(shù) $1 作為第一個(gè)參數(shù), $2 作為第二個(gè)參數(shù),以此類推。
在shell腳本中定義函數(shù)有兩種方法
function function_name {
...
}
OR
function_name () {
...
}
無(wú)論是否傳遞參數(shù),每個(gè)shell腳本函數(shù)都必須像上面那樣定義。您將注意到,在函數(shù)簽名中沒(méi)有指定任何實(shí)參。
下面介紹如何調(diào)用同一個(gè)shell腳本函數(shù)
function_name arg1 arg2 ...
正如前面提到的,每個(gè)shell腳本函數(shù)通過(guò)其位置$1、$2等引用參數(shù)。$0表示函數(shù)的名稱。
下面是一個(gè)shell腳本函數(shù)的例子,它讀取第一個(gè)參數(shù)并回顯它。創(chuàng)建一個(gè)空的shell腳本,如下所示。
$ sudo vi test_script.sh
向它添加以下行。
#!/usr/bin/env sh
test() {
? ? echo "Parameter #1 is $1"
}
test 20用以下命令運(yùn)行上面的腳本。
$ sudo ./test_script.sh Parameter #1 is 20
重要的是要記住,只能在函數(shù)定義之后調(diào)用函數(shù)。如果你在定義之前調(diào)用它,那么它會(huì)給你一個(gè)錯(cuò)誤。
您還可以調(diào)用在shell腳本函數(shù)之外定義的變量,并將它們用作參數(shù)。在下面的例子中,我們使用了在函數(shù)外部定義的變量 $name 作為參數(shù)
$ sudo vi test_script.sh
向它添加以下行。
test() {
? ? echo hello $name
}
name="tom"
test用以下命令運(yùn)行上面的腳本。
$ sudo ./test_script.sh hello tom
在本文中,我們研究了向shell腳本函數(shù)傳遞參數(shù)的兩種不同方法。
到此這篇關(guān)于Shell腳本函數(shù)傳遞參數(shù)的實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)Shell函數(shù)傳遞參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決linux?shell中傳遞包含空格的參數(shù)問(wèn)題
這篇文章主要介紹了如何解決linux?shell中傳遞包含空格的參數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
linux下開(kāi)啟php的sockets擴(kuò)展支持實(shí)例
下面小編就為大家?guī)?lái)一篇linux下開(kāi)啟php的sockets擴(kuò)展支持實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02
一天一個(gè)shell命令 linux文本操作系列-chmod命令用法
這篇文章主要介紹了一天一個(gè)shell命令 linux文本操作系列-chmod命令用法,需要的朋友可以參考下2016-06-06
linux下python3連接mysql數(shù)據(jù)庫(kù)問(wèn)題
這篇文章主要介紹了linux下python3連接mysql數(shù)據(jù)庫(kù)問(wèn)題,需要的朋友可以參考下2015-10-10

