Nếu bạn đặt một dấu phân tách trường khác, bạn có thể trực tiếp sử dụng một for
vòng lặp:
IFS=","
for v in $variable
do
# things with "$v" ...
done
Bạn cũng có thể lưu trữ các giá trị trong một mảng và sau đó lặp qua nó như được chỉ ra trong Làm cách nào để tách một chuỗi trên dấu phân cách trong Bash? :
IFS=, read -ra values <<< "$variable"
for v in "${values[@]}"
do
# things with "$v"
done
Kiểm tra
$ variable="abc,def,ghij"
$ IFS=","
$ for v in $variable
> do
> echo "var is $v"
> done
var is abc
var is def
var is ghij
Bạn có thể tìm thấy một cách tiếp cận rộng hơn trong giải pháp này về Cách lặp qua danh sách được phân tách bằng dấu phẩy và thực hiện lệnh cho mỗi mục nhập .
Ví dụ về cách tiếp cận thứ hai:
$ IFS=, read -ra vals <<< "abc,def,ghij"
$ printf "%s\n" "${vals[@]}"
abc
def
ghij
$ for v in "${vals[@]}"; do echo "$v --"; done
abc --
def --
ghij --