Split + glob kullanabilirsiniz (liste bağlamında bir genişletmeyi sıralanmamış bıraktığınızda ne olur). Çoğu zaman yolumuza giriyor, aslında ihtiyacımız olduğunda kullanmamak utanç verici olurdu:
IFS=,
set -o noglob
ARR=($VAR) # split+glob with glob disabled, and split using , as delimiter
Bu, geçici bir dosya yazmaktan daha az kıvrımlıdır ve daha sonra yaklaşımdaki readarray
gibi readarray <<< "$string"
çağrılır (ayrıca readarray -d
çok yeni bir sürümüne ihtiyaç duyduğunu unutmayın bash
).
Not rağmen o S
içinde IFS
(açılımı ayırıcı ), aynı şekilde çalışır readarray
ki a,,b,
içine bölünmüş olup "a"
, ""
ve "b"
sadece.
Gerçek bir bölme operatörü için şunları kullanabilirsiniz zsh
:
ARR=("${(@s:,:)VAR}")
( @
ve boş öğeleri korumak için çift tırnak).
"What is the meaning of the latest $ symbol?"