Câu trả lời:
Đó là một tính năng của for
lệnh ghép, như được mô tả bởi help for
:
for: for NAME [in WORDS ... ] ; do COMMANDS; done
Thực hiện các lệnh cho mỗi thành viên trong một danh sách.
Các
for
vòng lặp thực hiện một chuỗi các lệnh cho mỗi thành viên trong một danh sách các mục. Nếuin WORDS ...;
không có mặt, thìin "$@"
được giả định. Đối với mỗi phần tử trongWORDS
,NAME
được đặt thành phần tử đó vàCOMMANDS
được thực thi.
Vì vậy, mã bạn trích dẫn có thể được thực thi trong một tập lệnh được gọi với 4 tham số.
for x; do …
là một phím tắt cho for x in "$@"; do …
: nó lặp qua các tham số vị trí. Nếu nó lặp bốn lần, điều đó có nghĩa là bạn có bốn tham số vị trí ( $1
thông qua $4
).
set a b c d
một thời gian gần đây. Tôi thường sử dụngset
cách đó trong một kịch bản để kiểm tra .. Sau khi khởi động lại thiết bị đầu cuối, nó đã dừng lại ... (có ý nghĩa ngay bây giờ) ..