
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