for
vòng lặp trên các tham số vị trí nếu không có in value1 value2...
phần nào được chỉ định trong tất cả các shell giống như Bourne.
Đó đã là trường hợp trong vỏ Bourne từ cuối những năm 70, mặc dù trong vỏ Bourne, bạn cần bỏ qua điều đó ;
(bạn cũng có thể sử dụng for i do
(ngoại trừ trong một số phiên bản tro cũ, nơi bạn cần một dòng mới trước do
)).
Xem mục đích của từ khóa "làm" trong Bash cho các vòng lặp là gì? để biết thêm thông tin bao gồm các biến thể đáng ngạc nhiên hơn .
Đang làm:
for i
do
something with "$i"
done
là thực hành tốt. Nó hơi di động / đáng tin cậy hơn so với thường tương đương:
for i in "$@"; do
something with "$i"
done
trong đó vỏ Bourne, ksh88 có một số vấn đề trong một số điều kiện (như khi nào $#
là 0 trong một số phiên bản của vỏ Bourne ( ${1+"$@"}
thay vì "$@"
có thể hoạt động xung quanh) hoặc khi $IFS
không chứa ký tự khoảng trắng trong Bourne và ksh88) hoặc khi các nounset
tùy chọn được kích hoạt và $#
là 0 trong một số phiên bản của một số vỏ bao gồm bash
( một lần nữa với ${1+"$@"}
một công việc xung quanh ).