Что: 1292571d0fe2410bf8c6067f15d98d8de73b3d87
Когда: 2021-10-20 10:18:40+03:00
Темы: 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 модуль, который бы мог быть отличной альтернативой.
Сгенерирован: SGBlog 0.34.0