Megérkezett a Bash 5.3 továbbfejlesztett parancshelyettesítéssel, új változókkal és C23 támogatással.

bash Linux

Néhány nappal ezelőtt a GNU projekt bejelentette a Bash 5.3 új verziójának megjelenését, amely a népszerű parancsértelmező, és továbbra is az alapértelmezett opció a legtöbb Linux disztribúcióban.

Ez az új verzió közel három évnyi munkát jelent , melynek során nemcsak a shell nyelvén és viselkedésén végeztek fejlesztéseket, hanem új funkciókat is bevezettek, hogy összhangba hozzák a modern szabványokkal, például a C23-mal. A verzióhoz tartozik a Readline 8.3 könyvtár is.

Újdonságok a Bash 5.3-ban

A Bash 5.3 egyik legjelentősebb változása az új parancshelyettesítési metódusok bevezetése: `${ command; }` és `${|command;}` . Ezek lehetővé teszik egy parancs kimenetének elfogását gyermekfolyamat létrehozása vagy folyamatok használata nélkül, ezáltal csökkentve az erőforrás-fogyasztást és javítva a teljesítményt. Az eredmény közvetlenül a `REPLY` változóban tárolható, ami leegyszerűsíti a gyakori kimeneti rögzítési feladatokat.

A GNU Bash 5.3-ban bevezetett egy másik új funkció az új GLOBSORT változó, amely lehetővé teszi a rendezési kritériumok meghatározását a fájlelérési utak kibontásakor. A felhasználók név, méret, módosítási dátum és egyebek szerint rendezhetnek, növekvő és csökkenő sorrendben is.

Ezenkívül a Bash 5.3 számos beépített parancsot továbbfejlesztett. A `compgen` parancs mostantól képes a generált kiegészítéseket egy változóban (`-V varname`) tárolni, míg a `read` mostantól tartalmazza az `-E` opciót a Readline könyvtár használatához a Bash automatikus kiegészítési szabályaival. A `source` is továbbfejlesztésre került, mostantól támogatja a `-p PATH` kapcsolót a keresési útvonal módosításához.

Ezenkívül az umask parancsot módosították, hogy teljes mértékben megfeleljen a POSIX specifikációnak , és a printf függvényt továbbfejlesztették a többbájtos karakterláncok, valamint az alternatív karakter- és karakterlánc-ábrázolás új lehetőségeivel.

C23 kompatibilitás és búcsú a K&R C-től

Az egyik legjelentősebb szerkezeti változás a C23 szabvány bevezetése a Bash forráskódban. Ennek eredményeként megszűnt a "K&R C" módú fordítás támogatása , amely technika egészen a C nyelv korai napjaiig nyúlik vissza.

Másrészt a Bash 5.3 számos betölthető parancsot vezet be, például:

  • kv: kulcs-érték formátumú adatokból asszociatív tömbök generálására.
  • strptime: szöveges formátumú dátumokat Unix idővé alakítja.
  • fltexpr: lehetővé teszi lebegőpontos aritmetikai műveletek végrehajtását, a let viselkedését emulálva.

Ezenkívül hozzáadásra került a BASH_MONOSECONDS dinamikus változó , amely egy monoton rendszeridő-számlálót biztosít , ami hasznos olyan feladatokhoz, ahol az időbeli stabilitás kritikus fontosságú.

POSIX módban a Bash mostantól karakterlánc-összehasonlításokat végez a < és > operátorokkal, miközben tiszteletben tartja a területi beállításokat. Emellett összehangolja a parancsok, például a test, trap, wait és bind viselkedését, szorosan követve a szabvány követelményeit. Például a `trap -P` lehetővé teszi az egyes jelek trap műveletének kinyomtatását, a `wait -n` pedig javítja a leállított folyamatok és helyettesítések kezelését.

8.3-as olvasási sor

A Bash kísérőkönyvtára, a Readline könyvtár is jelentős frissítést kapott. A legjelentősebb új funkciók közé tartoznak:

  • keresés-ignore-case: kis- és nagybetűket megkülönböztető keresést tesz lehetővé az előzményekben.
  • export-befejezések: exportálja egy szó lehetséges kiegészítéseit külső feldolgozásra.
  • parancs végrehajtása: Olyan parancsokat hajt végre, amelyek nevét a szabványos bemenetről olvassa be, ami hasznos szkriptek írásához és testreszabáshoz.
  • Továbbfejlesztett makrótámogatás, új konfigurálható változók és a képernyőméretek jobb kezelése az önéletrajz után (SIGCONT).

Bash telepítése és/vagy frissítése Linuxon

Azoknak, akiket érdekel a Bash telepítése vagy frissítése Linuxon, tudniuk kell, hogy ez a használt disztribúciótól függ. Az alábbiakban elmagyarázom, hogyan kell ezt megtenni a főbb disztribúciókon:

Debian-alapú disztribúciókon (például Ubuntu, Linux Mint)

sudo apt install --only-upgrade bash parancs

Ez frissíti a Bash-t a hivatalos tárolókban elérhető legújabb verzióra.

Ha a nulláról szeretnéd telepíteni (például egy nagyon minimális rendszeren):

sudo apt install bash

Red Hat alapú disztribúciókon (mint például a Fedora, CentOS, RHEL)

sudo dnf update bash A Bash telepítéséhez (ha még nem telepítve van):
sudo dnf telepítés bash

Arch Linuxon és származékain (például Manjaro)

sudo pacman -Syu bash

Ez frissíti a Bash-t a teljes rendszerrel együtt. Csak a Bash telepítéséhez:

sudo pacman -S bash

Hozzáadás előnyben részesített forrásként a Google-ben