Bash 5.3, geliştirilmiş komut değiştirme, yeni değişkenler ve C23 desteğiyle birlikte geldi.

bash Linux

Birkaç gün önce GNU projesi Bash 5.3'ün yeni sürümünün yayınlandığını duyurdu. Çoğu Linux dağıtımında varsayılan tercih olmaya devam eden popüler komut yorumlayıcısı.

Bu yeni versiyon neredeyse üç yıllık bir çalışmanın ürünü, yalnızca kabuğun dili ve davranışında iyileştirmeler yapmakla kalmayıp, aynı zamanda onu C23 gibi modern standartlarla uyumlu hale getiren yeni özellikler de sunuyor. Ayrıca Readline 8.3 kütüphanesinin yayınlanmasıyla birlikte geliyor.

Bash 5.3'teki yenilikler

Bash 5.3'teki en dikkat çekici değişikliklerden biri Yeni komut değiştirme biçimlerinin tanıtımı: ${command;} ve ${|command;}Bunlar, bir alt işlem oluşturmadan veya işlem hatları kullanmadan bir komutun çıktısını yakalamanıza olanak tanır, böylece kaynak tüketimini azaltır ve performansı artırır. Sonuç doğrudan REPLY değişkeninde saklanabilir ve bu da yaygın çıktı yakalama görevlerini basitleştirir.

GNU Bash 5.3'te tanıtılan bir diğer yeni özellik ise yeni değişken GLOBSORT izin vermek dosya yollarını genişletirken sıralama düzenini tanımlayın. Kullanıcılar, artan ve azalan sıralama seçenekleriyle ad, boyut, değiştirilme tarihi ve daha fazlasına göre sıralama yapabilir.

Ayrıca Bash 5.3, birçok yerleşik komutta iyileştirmeler sunuyor. compgen artık oluşturulan tamamlamaları bir değişkende saklayabilir (-V değişken adı), read ise Readline kütüphanesini Bash'in otomatik tamamlama kurallarıyla kullanmak için -E seçeneğini ekler. Kaynak da iyileştirildi ve artık arama yolunu değiştirmek için -p PATH seçeneği destekleniyor.

Benzer şekilde, komut umask, POSIX spesifikasyonuna tam olarak uyacak şekilde ayarlandıve printf, çok baytlı dizeler için yeni seçenekler ve karakterlerin ve dizelerin alternatif temsilleriyle iyileştirildi.

C23 uyumluluğu ve K&R C'ye elveda

En önemli yapısal değişikliklerden biri de C23 standardının benimsenmesi Bash kaynak kodunda. Sonuç olarak, "K&R C" modunda derleme desteği kaldırıldı, C dilinin ilk zamanlarına dayanan bir tekniktir.

Öte yandan Bash 5.3, aşağıdaki gibi birkaç yüklenebilir komut sunuyor:

  • kv: Anahtar-değer formatındaki verilerden ilişkisel diziler üretmek.
  • şerit zamanı: Metin biçimindeki tarihleri ​​Unix zamanına dönüştürür.
  • fltexpr: let'in davranışını taklit ederek kayan nokta aritmetik işlemleri yapmanıza olanak tanır.

Buna ek olarak, Dinamik değişken BASH_MONOSECONDS eklendiO sistem zamanının monoton bir sayacını sağlar, zamansal istikrarın kritik olduğu görevler için kullanışlıdır.

POSIX modunda, Bash artık < ve > operatörleriyle dize karşılaştırmaları gerçekleştiriyor. Bölgesel ayarlara saygı duyar. Ayrıca, test, trap, wait ve bind gibi komutların davranışlarını standardın gerekliliklerine uygun şekilde hizalar. Örneğin, trap -P, her sinyalin trap eylemini yazdırmanıza olanak tanır ve wait -n, sonlandırılan işlemlerin ve değişikliklerin yönetimini iyileştirir.

Okuma satırı 8.3

Bash'in tamamlayıcısı olan Readline kütüphanesi de önemli bir güncelleme aldı. En dikkat çekici yeni özellikleri arasında şunlar yer alıyor:

  • ara-büyük-küçük harf ayrımı: geçmişte büyük/küçük harfe duyarlı olmayan aramalara izin verir.
  • ihracat-tamamlamaları: Bir kelimenin olası tamamlanmalarını harici işleme tabi tutmak için dışa aktarır.
  • adlandırılmış-komutu-yürüt: Standart girdiden adı okunan komutları çalıştırır, betikleme ve özelleştirme için kullanışlıdır.
  • Geliştirilmiş makro desteği, yeni yapılandırılabilir değişkenler ve devam ettirmeden sonra ekran boyutlarının daha iyi işlenmesi (SIGCONT).

Linux'ta Bash Kurulumu ve/veya Güncellemesi

Linux'ta Bash kurulumu veya güncellemesiyle ilgilenenler için, bunun kullandığınız dağıtıma bağlı olduğunu bilmelisiniz. Aşağıda, ana dağıtımlarda bunu nasıl yapacağınızı açıklayacağım:

Debian tabanlı dağıtımlarda (Ubuntu, Linux Mint gibi)

sudo apt install --only-upgrade bash

Bu, Bash'i resmi depolarında bulunan en son sürüme güncelleyecektir.

Eğer sıfırdan kurmak istiyorsanız (örneğin çok minimal bir sisteme):

sudo apt install bash

Red Hat tabanlı dağıtımlarda (Fedora, CentOS, RHEL gibi)

Bash'i yüklemek için (eğer zaten yüklü değilse):
sudo dnf install bash

Arch Linux ve türevlerinde (Manjaro gibi)

sudo pacman -Syu bash

Bu, Bash'i tüm sistemle birlikte güncelleyecektir. Yalnızca Bash'i yüklemek için:

sudo pacman -S bash