[О блоге]
[наверх]
[пред]
[2021-10-20 10:18:40+03:00]
[1292571d0fe2410bf8c6067f15d98d8de73b3d87]
Темы: [zsh]
zsh vs bash, снова
https://www.arp242.net/why-zsh.html
https://tiswww.case.edu/php/chet/bash/POSIX
Хорошие примеры убогости bash-а. Несколько лет назад я всё ещё продолжал
говорить что меня не волнуют более удобные возможности программирования
на zsh, ибо всё равно скрипты писал и буду писать на POSIX shell.
Поэтому программирование (скрипты) и интерактивное удобство могут
разительно отличаться (как tcsh по умолчанию в FreeBSD, вообще не POSIX
или Bourne совместимый даже отдалённо). Но когда я прочувствовал
насколько же удобнее работать с переменными где не нужно париться о
корректном экранировании переменных, то я уже не мало своих скриптов
переписал на pure zsh, в котором и вызовов внешних команд стало сильно
меньше.
Читая эту статью я и не подозревал насколько же bash мало всего умеет!
Выходит, я совершенно его не знал. Ад с quoteing-ом как был, так и
остался в нём, ничуть не делая ситуацию лучше относительно POSIX shell.
Никаких модификаторов переменных в нём нет. Игнорирование чего-либо в
glob-е оказывается есть, но явно не шибко удобно написанное -- я поэтому
никогда и не встречал чтобы кто-либо писал "!(*_test|f*).go" в bash.
Подстановки параметров тоже нет. Да почти всё (кроме работы с float-ами)
я ежедневно использую в zsh, а в bash оказывается ничего из этого нет!
Оказывается некоторые фичи присутствовали в csh или ksh ещё со времён их
рождения.
Автор верно замечает что нет ни одной причины почему bash до сих пор
используется, кроме того факта, что изначально это всё было в GNU ОС и
он там был по умолчанию. Come on, уже давно многие люди не используют ни
GNU, ни нет проблем со свободными лицензиями всяких zsh. Плюс у zsh
только curses и libc из зависимостей и он реально маленький и
компактный, относительно остальных интерпретаторов. И верно замечено что
в zsh можно писать более портируемый код, ибо меньше сторонних
инструментов будет использовано: тот же grep/sed попробуй написать чтобы
он работал в разных реализациях. Помню что единственный способ
использовать портируемо stat команду это... не использовать её, а
вызывать perl. Но вот в zsh есть свой zstat модуль, который бы мог быть
отличной альтернативой.
[оставить комментарий]