shell中參數傳遞注意事項

 在編寫shell腳本時,爲了使腳步具有更大的靈活性,往往我們會在執行腳本時再去傳遞想要實現的參數,而不是在腳本中直接寫死參數變量,但我們在做參數傳遞時需要注意,外部傳入的參數變量不能放在function中進行判斷,否則參數傳遞會失效,如下,在test.sh腳本中,假設我們需要先判斷在執行腳本時是否傳入了參數,如果傳入了就將傳入的參數賦值給a並輸出,否則提示未傳入參數:

if [ -n "$1" ]; then
  a=$1
  echo "傳入的參數爲:$a"
else
  echo "未傳入參數!"
fi

執行腳本

sh test.sh '我是傳入的參數1'

數據結果爲:
shell中參數傳遞注意事項
下面將腳本中的內容移植到function中

function main(){
  if [ -n "$1" ]; then
    a=$1
    echo "傳入的參數爲:$a"
  else
    echo "未傳入參數!"
  fi
}

main

此時再執行腳本

sh test.sh '我是傳入的參數1'

返回的結果爲:
shell中參數傳遞注意事項


 這表明在進行自變量參數傳遞時需要避免將傳入的參數變量放置在函數中,建議將他們直接放在腳本頭部。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章