Fish — современная командная оболочка, разработанная с целью удобства, простоты использования и продуктивности.
Основные изменения в релизе 3.0:
Новые возможности:
- Теперь Fish поддерживает
&&(синонимand),||(синонимor) и!(синонимnot) для упрощения работы со скриптами написанными под другие шеллы - Переменные теперь можно использовать в качестве команд
- Fish может быть запущен в
private mode(fish --private), в этом режиме не сохраняется история команд - Имя машины теперь доступно в качестве зарезервированной переменной
$hostname -
$fish_pidи$last_pidпеременные добавлены вместо%selfи%last -
execспрашивает подтверждение если есть запущенные фоновые процессы - Добавлено множество новых опций в команды
alias,bind,read,set,string - Пайп (
|) в конце строки теперь корректно позволяет продолжить команду на следующей строке - Добавлены автодополнения параметров для множества программ
Несовместимые изменения:
- Убран специальный
%синтаксис для процессов на глобальном уровне. Теперь он работает только с командами которым требуется PID (kill,bg,fgи так далее) - Переработаны области видимости переменных объявленных в управляющих конструкциях (
for,if,while,setи тд) -
cdбольше не разименовывает симлинки сам, теперь используется внутренний виртуальнй путь, как и в большинстве других оболочек - Различные изменения синтаксиса затронули в том числе множественное присвоение и получения среза массива
- Теперь перенаправление stderr осуществляется через
2>вместо^ - Убрано использование
?для выражений подстановки















