Опубликован релиз интерактивной командной оболочки fish 3.2.0 (friendly interactive shell), развивающейся как более дружественная пользователю альтернатива bash и zsh. Fish поддерживает такие возможности как подсветка синтаксиса с автоматическим выявлением ошибок ввода, предложение возможных вариантов ввода на основе истории прошлых операций, автодополнение ввода опций и команд с использованием их описания в man-руководствах, комфортная работа из коробки без необходимости дополнительной настройки, упрощённый язык написания сценариев, поддержка буфера обмена X11, удобные средства поиска в истории выполненных операций. Код проекта распространяется под лицензией GPLv2. Готовые пакеты сформированы для Ubuntu, Debian, Fedora, openSUSE и RHEL.
Среди добавленных новшеств:
- Добавлена поддержка отката изменений (Undo и Redo) при редактировании командной строки. Undo вызывается через комбинацию Сtrl+Z, а Redo через Alt+/.
- Встроенные команды теперь выполняют обработку по мере поступления данных, например, операция замены строки начинает вывод сразу, без ожидания поступления всех входных данных. В том числе встроенные команды теперь можно использоваться в цепочке команд, передающих данные через неименованные каналы, например “dmesg -w | string match ‘*usb*'”.
- Если путь в приглашении командной строки не вмещается в ширину строки терминала, он теперь частично обрезается, а не заменяется на “>”.
- Улучшена работа автодополения ввода нажатием Tab (для неоднозначных дополнений сразу выводится список замен без необходимости второй раз нажимать Tab).
- Добавлена новая вспомогательная функция “fish_add_path” для добавления пути к переменной окружения $PATH, автоматически отсеивающая дубликаты.
- Обеспечена более наглядная диагностика ошибок при выполнении команды test.
- В конструкции “$x[$start..$end]” теперь разрешено пропускать значения $start или $end, которые по умолчанию определяются как 1 и -1. Например, echo $var[..] эквивалентно $var[1..-1] и приведёт к выводу от первого до последнего элемента.
- Значительно повышена производительность многих функций. Расширены возможности функций обработки строк.