Split kelimesinin oynadığı rol hakkında kafam karışıyor zsh
. C, Python veya MATLAB'da programlama yaparken bu konsepte maruz kalmadım ve bu, kelime bölmenin neden kabuk programlamaya özgü bir şey olduğu konusundaki ilgimi tetikledi.
Daha önce bu sitede ve diğer sitelerde kelime bölme hakkında okudum, ancak kavramın net bir açıklamasını bulamadım. Wikipedia, kelime bölme tanımına sahiptir, ancak Unix kabuklarına nasıl uygulanacağı konusunda referansları yoktur.
İşte karışıklığımın bir örneği zsh
:
In Z Shell SSS , ben şöyle haber verilmektedir:
3.1: Neden gelmez
$var
neredevar="foo bar"
ne bekliyorsunuz ki?Çoğu Bourne kabuğu türevinde,
var="foo bar"
bir komuta geçildiğinde veya birfor foo in $var
döngüde kullanıldığında gibi çok kelimeli değişkenler kelimelere bölünür . Varsayılan olarak, zsh bu davranışa sahip değildir: değişken bozulmadan kalır. (Bu bir hata değildir! Aşağıya bakın.)SH_WORD_SPLIT
Uyumluluk sağlama seçeneği vardır.
Ancak Z Shell Manual'da aşağıdakileri okudum:
SH_WORD_SPLIT (-y) <K> <S>
Alan bölünmesinin tırnaksız parametre genişletmelerinde yapılmasına neden olur. Bu seçeneğin kelime bölme ile ilgisi olmadığını unutmayın . (Bkz. Parametre Genişlemesi.)
Neden yazıyor SH_WORD_SPLIT
sahiptir ilgisi kelime bölme ile? Sözcük bölme, bununla ilgili olan şey değil mi?
"word1 word2 word3"
listelerine / dizilerine dönüştürdüğünü söylemek doğru"word1" "word2" "word3"
mu? Ben de OP zsh belirli bir karışıklık kaynağı ile güncelledi.