2013-04-19 28 views
6

Tôi đã tìm thấy tập lệnh mẫu để sử dụng lệnh getopt trong trình bao."for i" không có "in [sequence]" kết thúc khi sử dụng getopt

#!/bin/bash 
args=$(getopt ab $*) 
set -- $args 
for i; 
do 
    case "$i" in 
    -a)shift; echo "it was a";; 
    -b)shift; echo "it was b";; 
esac; 
done 

Nó hoạt động tốt, nhưng tôi không hiểu đâu là $ i được gán. Làm thế nào nó biết rằng nó phải lặp qua $ arg. Bạn có thể giải thích điều này?

+0

Trang người dùng 'bash' có thể, trong phần mô tả của vòng lặp' for'. – chepner

Trả lời

11

Như được hiển thị here, for mặc định là [email protected] nếu không có in seq. Số for i gán biến số $i của bạn.

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