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>
вместо^
- Убрано использование
?
для выражений подстановки