Bash 5.0 излиза с нови функции

Наскоро пощенският списък потвърди излизането на Bash-5.0. И е вълнуващо да знаете, че тя идва печена с нови функции и променливи.

Е, ако сте използвали Bash 4.4.XX, определено ще ви хареса петото голямо издание на Bash.

Петото издание се фокусира върху новите променливи на обвивката и много поправки с големи грешки с основен ремонт. Той също така въвежда няколко нови функции заедно с някои несъвместими промени между bash-4.4 и bash-5.0.

Какво ще кажете за новите функции?

Списъкът за кореспонденция обяснява грешката, установена в тази нова версия:

Тази версия поправя няколко неизправности в bash-4.4 и въвежда няколко нови функции. Най-важните поправки на грешки са преразглеждане на това как променливите nameref се решават и редица потенциални грешки в паметта, открити извън границите, открити чрез fuzzing. Има редица промени в разширяването на [email protected] и $ * в различни контексти, където разделянето на думата не се извършва, за да съответства на интерпретацията на Posix стандарт, и допълнителни промени за разрешаване на ъгловите случаи за Posix съответствие.

Той също така въвежда някои нови функции. Според бележката за изданието, това са най-забележителните нови функции, които са няколко нови променливи на обвивката:

BASH_ARGV0, EPOCHSECONDS и EPOCHREALTIME. Вградената „история“ може да премахне диапазоните от записи в историята и да разбира отрицателните аргументи като компенсации от края на списъка с история. Има възможност да се позволи на локални променливи да наследят стойността на променлива със същото име в предходен обхват. Има нова опция на обвивката, която, когато е активирана, кара черупката да се опита да разшири асоциативния индекс на масив само веднъж (това е проблем, когато се използват в аритметични изрази). Опцията на обвивката 'globasciiranges' вече е активирана по подразбиране; по подразбиране може да се настрои на изключване в конфигурационното време.

Какво ще кажете за промените между Bash-4.4 и Bash-5.0?

Споменатият регистър на актуализацията за несъвместимите промени и поддържаната история на версиите за четене. Ето какво казва:

Има няколко несъвместими промени между bash-4.4 и bash-5.0. Промените в това как се решават променливите на nameref означава, че някои употреби на namerefs ще се държат по различен начин, макар че аз се опитах да намаля до минимум проблемите със съвместимостта. По подразбиране, обвивката задава само BASH_ARGC и BASH_ARGV при стартиране, ако е разрешен разширен режим на отстраняване на грешки; това беше пропуск, който бе поставен безусловно и предизвика проблеми с производителността, когато сценариите бяха предавани на голям брой аргументи.

Bash може да бъде свързан с вече инсталирана Readline библиотека, а не с частната версия в lib / readline, ако е необходимо. Само readline-8.0 и по-нови версии могат да предоставят всички символи, които bash-5.0 изисква; по-ранните версии на библиотеката Readline няма да работят правилно.

Вярвам, че някои от добавените характеристики / променливи са много полезни. Някои от любимите ми са:

  • Има нова (забранена по подразбиране, недокументирана) опция на черупката, която позволява и забранява изпращането на история на syslog по време на изпълнение.
  • Черупката не задава автоматично BASH_ARGC и BASH_ARGV при стартиране, освен ако не е в режим на отстраняване на грешки, както винаги се казва в документацията, но ще ги създава динамично, ако скрипт ги препраща на най-високо ниво, без да е активиран режим за отстраняване на грешки.
  • "Историята" вече може да изтрива диапазони от записи в историята, използвайки '-d start-end'.
  • Ако не-интерактивна обвивка с управление на заданията разреши да открие, че задача на преден план е починала поради SIGINT, тя действа така, сякаш е получила SIGINT.
  • BASH_ARGV0: нова променлива, която се разширява до $ 0 и задава $ 0 при присвояване.

За да проверите пълния списък с промени и функции, трябва да се обърнете към публикацията в пощенския списък.

Обобщавайки

Можете да проверите текущата си версия на Bash, като използвате тази команда:

 bash - версия 

По-вероятно е да имате инсталиран Bash 4.4. Ако искате да получите новата версия, бих ви посъветвал да я изпратите, за да го предоставите.

С Bash-5.0, какво мислите за него? Използвате ли алтернатива на bash? Ако е така, ще промени ли тази актуализация?

Споделете вашите мисли в коментарите по-долу.

Препоръчано

Алтернативи на операционната система с отворен код към Android
2019
$ 2400 Ценен Въведение към Linux Курсът е достъпен безплатно за edX
2019
Албанската конференция с отворен код търси лектори
2019