2011-11-03 22 views

Odpowiedz

24

Użyj specjalnej zmiennej $#. Jego wartość to liczba argumentów. Więc jeśli masz skrypt, który zawiera tylko:

echo $# 

i wykonać ją tak:

thatscript foo bar baz quux 

To będzie drukować 4.

W twoim przypadku może chcesz zrobić coś takiego :

if [ $# -ne 2 ]; then 
    # TODO: print usage 
    exit 1 
fi 
15

Przechodząc przez wymaganie z pytania, że ​​argumenty powinny zawierać "co najmniej 2 rzeczy", myślę, że Może to być bardziej dokładne, aby sprawdzić:

if (($# < 2)); then 
    # TODO: print usage 
    exit 1 
fi 

Korzystanie arithmetic expansion(()) uniemożliwi to od uderzenia exit 1 dla dowolnej wartości nie równym 2.

Jeśli używasz if [ $# -ne 2 ]; będzie wyzwalać warunkowego dla dowolnej liczby argumenty inne niż 2.

Powiązane problemy