Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Достаточно один раз увидеть, как работает fish, и вы уже не захотите пользоваться ничем другим
(math {expr})
слишком долго, а исполняться оно будет через bc и, как минимум, два дополнительных процесса: собственно сам bc и echo). Process substitution работает только в одну сторону, да и тот есть эквивалент =(command)
от zsh². Про 100500 возможностей globbing из zsh я даже и не говорю: zsh может полностью заменить find вместе с несколькими другими программами (но find всё же быстрее), fish не имеет даже [{char1}{char2}]
: только *
, **
, ?
и {a,b}
.=(command)
отправляет вывод command
во временный файл, который удаляется по завершению процесса, получившего =(command)
в качестве аргумента, zsh‐специфичная возможность. >(command)
, который есть в bash и zsh использует pipe. Разница в том, что первый вариант ждёт завершения команды, а второй нет, но не поддерживает seek (т.к. использует pipe) и может быть зарублен некоторыми излишне параноидальными процессами (которые закрывают все неизвестные им дескрипторы).>(command)
следует читать как <(command)
. >(command)
у fish вообще нет: github.com/fish-shell/fish-shell/issues/1786.set shell=…/fish
, потому как использует !
и/или :shell
и не хочет видеть другую оболочку) и пишут с минимумом предположений (см. github.com/neovim/neovim/issues/2292#issuecomment-140504677 по поводу того, какие предположения, по моему мнению, допустимы: с fish всё будет также хорошо работать, пока вы не выходите за эти рамки).
Консоль 21 века: mosh, tmux, fish