Stack Exchange'de bulduğunuz cevaplar doğru ve bu eğitici yanlış. Kendiniz deney yapabilir veya standartta arayabilirsiniz . Bir ayarlanmazsa IFS
boş iken, uzay-tab-yeni satır varsayılan değere ayarlayarak eşdeğerdir IFS
etkili bir alan bölme kapanır.
Sen danışabilirsiniz IFS üzerinde Sven Mascheck sayfasını tarihsel uygulamaları hakkında. Birkaç tarihi mermi hoşlanmadı unset IFS
ve ksh'ın çok eski bir versiyonu ona boş gibi davrandı, IFS
ancak tüm modern mermiler ve çoğu eski mermi, ayarlanmamış IFS
değeri varsayılan değer gibi ele alıyor .
IFS=
Alan ayırmayı kapatmak istemediğiniz sürece komut dosyanızla başlamamalısınız (bu makul bir karar olabilir - ancak bunu da kapatmazsanız, globbingden kaçınmak için ikame etrafına çift tırnak koymanız gerektiğini unutmayın set -f
). Varsayılan değeri sıfırlamak için tuşunu kullanın unset IFS
. Bunun bir komut dosyasının başında yararlı olup olmadığı tartışmalıdır; PATH
arayanın senaryonuzu yanlış yapmak için yapabileceği tehlikeli gibi birçok kötü şey var .
Bu eğitici ayrıca sıfırlamayı önerir PATH
. Bu genellikle kötü bir tavsiye. Çoğu durumda, doğru arama yolunun ne olduğunu tahmin edemezsiniz, ancak kullanıcı bilir. Nasıl mı biliyorsun /usr/local/bin
ya /home/bob/bin
olanlar nerede eski UNix araçlardan hata sabit sürümlerini içeren /usr/bin
arabası vardır? Gerçekten koymak olmadığını anlamaya gömmek tüm mantık istiyorsunuz /usr/xpg6/bin
öncesinde /bin
? Hangi pozisyonda istiyorsunuz /usr/gnu/bin
? Betiğiniz belirli bir sistemi hedeflemedikçe PATH'ı sıfırlamayın.
Bu öğreticiyi okumadım, ama bir şeyi kontrol ettim: Başlangıçtan itibaren her zaman değişken ikameler ve komut ikameleri etrafında çift tırnak koymanızı söylemez. Bu yüzden bu öğreticinin iyi olduğunu düşünmüyorum.
unset IFS
alan ayırmayı sıfırlasa da IFS'yi bash'daki varsayılan değerine sıfırlamaz.