shell指令碼 函式傳遞引數

2021-07-05 04:00:30 字數 908 閱讀 6965

在乙個指令碼中,多個函式之間可能需要相互傳遞引數,之前一直對引數的傳遞以及引用有些疑問,今天做了幾個小測試例子

1、

#!/bin/bash

function f1()

function f2()

f1 $1

執行結果:./temp2.sh pp

mj@ubuntu:~$ ./temp2.sh pp

f1pp

f2pp

2、
#!/bin/bash

function f1()

function f2()

f1 $1

執行結果:./temp2.sh pp

mj@ubuntu:~$ ./temp2.sh pp

f1pp

f2pp

3、

#!/bin/bash

function f1()

function f2()

f1 $1

執行結果:./temp2.sh pp

mj@ubuntu:~$ ./temp2.sh pp

f1pp

f2pp

4、
#!/bin/bash

function f1()

function f2()

f1 $1

執行結果:./temp2.sh pp

mj@ubuntu:~$ ./temp2.sh pp

f1pp

f2

由此可見,在引數傳遞時,f2接收f1傳給它的引數,可以直接用f1中的變數名使用,或者用$1使用,或者f2自己建立local變數接收

Shell指令碼的引數傳遞

在許多的情況下,shell指令碼都需要接受使用者的輸入,根據使用者的輸入引數來執行不同的操作。本節內容主要介紹shell指令碼的引數,以及如何在指令碼中接收引數。從命令列傳遞給shell指令碼的引數又稱為位置引數,這主要是因為shell指令碼會根據引數的位置來接受它們的資料。在shell指令碼的內部...

shell指令碼read傳遞引數

1.用read獲取使用者的輸入 舉例 example.sh,檢視 cat example.sh bin bash this is a sample script file.accept user input for demonstration.使用read命令將使用者的輸入儲存到變數name中 ec...

Shell函式傳遞引數

透過現象看本質 若文章對你有幫助請點個?表示對我的鼓勵,非常感謝 函式之間呼叫時,如果把 全部引數,可以用shift進行截斷 直接全部傳遞過去可能會造成引數個數變化,這是因為把帶空格的引數 傳入時用雙引號包裹 解析為了多個引數.假如有如下指令碼 function say 2 function mai...