2011-11-03 22 views

Trả lời

24

Sử dụng biến số đặc biệt $#. Giá trị của nó là số lượng đối số. Vì vậy, nếu bạn có một kịch bản mà chỉ chứa:

echo $# 

và thực hiện nó như thế này:

thatscript foo bar baz quux 

Nó sẽ in 4.

Trong trường hợp của bạn, bạn có thể muốn làm một cái gì đó như :

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

Đi theo yêu cầu từ câu hỏi mà đối số phải chứa "ít nhất 2 điều", tôi nghĩ nó có thể là chính xác hơn để kiểm tra:

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

Sử dụng arithmetic expansion(()) sẽ ngăn chặn điều này đánh exit 1 đối với bất kỳ giá trị không bằng 2.

Nếu bạn sử dụng if [ $# -ne 2 ]; nó sẽ kích hoạt điều kiện cho bất kỳ số đối số khác với 2.

Các vấn đề liên quan