2015-03-13 57 views
1

我很困惑爲什麼無法獲得腳本的參數在函數中的計數,有人可以幫我嗎?在此先感謝:)
test.sh爲什麼不能在函數中獲取shell腳本的參數數

#!/bin/bash 
check(){ 
    echo $# 
    if [ $# -lt 2 ]; then 
     echo "Argument missing" 
     exit 1 
    fi 
} 
echo $# 
check 

運行:

./test.sh aa bb 

輸出

2 
0 
+1

你描述的通常被認爲是一個特徵;-)!只需轉到「檢查」$ {@}「'。祝你好運。 – shellter 2015-03-13 17:08:27

+0

我會盡力,謝謝。@ shellter – 2015-03-13 17:13:54

回答

7

功能具有的自己的本地副本argum ent變量,包括$#。它們與函數的參數相關,並且腳本級別的等價物被遮蔽。如果你想獲得腳本的參數變量,那麼你需要先將它們存儲在其他地方,或者將它們傳遞給函數。

check "[email protected]" 
+0

你的回答讓我很清楚,謝謝:) – 2015-03-13 17:12:54

相關問題