Bash

函式和傳遞參數

  • April 14, 2018

所以這是我的第一個功能:

#!/bin/bash

lets_print () {

   echo hello $1
}

lets_print Earth

lets_print Mars

準備顯示結果

user@bash$ ./demo.sh

Hello Earth

Hello Mars

這是我的第二個功能:

#!/bin/bash

lets_print () {

   echo hello $1 $2
}

lets_print Earth

lets_print Mars

準備顯示第二個結果:

user@bash$ ./demo.sh

Hello Earth

Hello Mars

有人可以解釋為什麼他們有相同的結果嗎?

現在我在想$1=Earth$2=Mars。但我知道這是錯誤的。

它們顯示相同的結果,因為每個函式呼叫只傳遞一個位置參數。為了讓 mars 成為第二個參數,您需要像這樣呼叫:

lets_print Earth Mars

位置參數推薦閱讀:3.4.1 位置參數

引用自:https://unix.stackexchange.com/questions/437653