shell中陣列傳參 和 的對比

2021-08-22 04:33:57 字數 950 閱讀 2447

### 陣列傳參,保持原有陣列(每個元素含有ifs)的情況

[tyler@tyler tools]$ cat test.sh

#!/bin/bash

function test()

"for i in "$"

doecho $i

done

}arr=("hahah   ahha" "xixix   xixi")

test "$"

[tyler@tyler tools]$ ./test.sh

hahah   ahha xixix   xixi

hahah ahha

xixix xixi

[tyler@tyler tools]$

### 對比 $@ 和 $*

[tyler@tyler tools]$ cat test.sh

#!/bin/bash

function test()

"for i in "$"

doecho $i

done  

}arr=("hahah   ahha" "xixix   xixi")

test "$"

[tyler@tyler tools]$ ./test.sh

hahah   ahha xixix   xixi

hahah ahha xixix xixi

[tyler@tyler tools]$

### 幾個地方需要注意

# 傳入時 test "$" 必須帶引號,用 $@ ,才能

原樣陣列傳入,這是因為 $@ 在引號下會將每個元素,

帶上引號傳過去

# 函式內重組陣列,不能用 echo 輸出重組;echo 重組

不帶引號會將原樣格式當乙個元素傳給 newarr,echo 重

組帶引號,會識別傳入的每個元素內的 ifs

# 最後,迴圈遍歷時。也必須給新陣列加上引號

陣列和指標傳參

在我們寫函式時,有沒有被引數型別難到呢?如果有,那就耐心看完本篇部落格吧 一維陣列傳參 二維陣列傳參 總結 陣列傳參時,降級為其內部元素型別的指標,二維陣列傳參,函式的引數只可以省略第乙個 的數字,因為對二維陣列,可以不知道有多少行元素,但必須知道一行有多少元素。引申為,多維陣列傳參,只有第乙個 的...

shell程式的傳參

呼叫shell程式時的傳參 我們都知道在c語言中系統可以通過main函式的argc和argv給它傳參。同樣shell程式本身也可以在呼叫時傳參給他。在shell程式內部使用傳參也是使用的一些特定符號來表示的,包括 katex parse error expected eof got at posit...

C C 函式中陣列傳參

voidf char s char str hello world cout sizeof str strlen str f str 以上 在32位平台上輸出為 12,11,4,11 原因 在c c 裡陣列作為引數時傳遞的實際上是指向陣列第乙個元素的指標,因此sizeof str 返回的是指標的大小...