ДоступСн ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Bash 5.2

ПослС Π΄Π²Π°Π΄Ρ†Π°Ρ‚ΠΈ мСсяцСв Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° новая вСрсия ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° GNU Bash 5.2, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ дистрибутивов Linux. ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ сформирован Ρ€Π΅Π»ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ readline 8.2, примСняСмой Π² bash для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ рСдактирования ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

Из ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ:

  • ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Π½ ΠΊΠΎΠ΄ для Ρ€Π°Π·Π±ΠΎΡ€Π° конструкций замСщСния ΠΊΠΎΠΌΠ°Π½Π΄ (command substitution, подстановка Π²Ρ‹Π²ΠΎΠ΄Π° ΠΎΡ‚ выполнСния Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, «$(command)» ΠΈΠ»ΠΈ `command`). Новая рСализация ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ рСкурсивный Π²Ρ‹Π·ΠΎΠ² парсСра bison ΠΈ отличаСтся Π±ΠΎΠ»Π΅Π΅ качСствСнной ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ синтаксиса ΠΈ Ρ€Π°Π½Π½ΠΈΠΌ выявлСниСм ошибок Π² Π·Π°ΠΌΠ΅Ρ‰Π°Π΅ΠΌΡ‹Ρ… конструкциях.
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ Ρ€Π°Π·Π±ΠΎΡ€ ΠΈ раскрытиС индСксов массивов. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² «@» ΠΈ «*» Π²ΠΎ встроСнной ΠΊΠΎΠΌΠ°Π½Π΄Π΅ unset для сброса ΠΊΠ»ΡŽΡ‡Π° с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ вмСсто сброса всСго массива.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° новая настройка «patsub_replacement», ΠΏΡ€ΠΈ установкС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ символ «&» Π² замСняСмой строкС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для подстановки части строки, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ. Для вставки Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° «&» Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΅Π³ΠΎ экранированиС ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΌ слэшСм.
  • Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΎ число ситуаций, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ выполняСтся ΠΎΡ‚Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… процСссов, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, fork Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ примСняСтся ΠΏΡ€ΠΈ использовании конструкции «$(<file)».
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½ΠΎΠ²Ρ‹ΠΉ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° ΠΈ расчёта Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ΠΎΠ².
  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π° этапС сборки (сonfigure —enable-alt-array-implementation) Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ массивов, которая ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° для достиТСния максимальной скорости доступа Ρ†Π΅Π½ΠΎΠΉ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ потрСблСния памяти.
  • Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΎ использованиС подстановок $’…’ ΠΈ $»…», примСняСмых ΠΏΡ€ΠΈ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ настройка noexpand_translations ΠΈ сборочная опция «configure —enable-translatable-strings», ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΡƒΠ΅ΠΌΡ‹Ρ… подстановок $»…».
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ настройка «globskipdots», Π·Π°ΠΏΡ€Π΅Ρ‰Π°ΡŽΡ‰Π°Ρ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ «.» ΠΈ «..» ΠΏΡ€ΠΈ раскрытии ΠΏΡƒΡ‚Π΅ΠΉ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru