Jika Anda menyetel pemisah bidang yang berbeda, Anda dapat langsung menggunakan for
loop:
IFS=","
for v in $variable
do
# things with "$v" ...
done
Anda juga dapat menyimpan nilai dalam sebuah array dan kemudian mengulanginya seperti yang ditunjukkan dalam Bagaimana cara membagi string pada pembatas di Bash? :
IFS=, read -ra values <<< "$variable"
for v in "${values[@]}"
do
# things with "$v"
done
Uji
$ variable="abc,def,ghij"
$ IFS=","
$ for v in $variable
> do
> echo "var is $v"
> done
var is abc
var is def
var is ghij
Anda dapat menemukan pendekatan yang lebih luas dalam solusi ini untuk Cara mengulang melalui daftar yang dipisahkan koma dan menjalankan perintah untuk setiap entri .
Contoh pendekatan kedua:
$ 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 --