Вышла (http://ftp.gnu.org/gnu/bash/) новая версия командного интерпретатора GNU Bash 4.2 (http://www.gnu.org/software/bash/).
Из улучшений можно отметить:
- Для команд declare/typeset добавлена новая опция "-g", при указании которой переменные имеют глобальную область видимости, т.е. видны даже в отдельных функциях;- Указание отрицательного индекса массива теперь не приводит к ошибке и воспринимается как обратное смещение от конца массива;
- Отрицательный размер, указанный в блоке ${var:offset:length} теперь не приводит к ошибке и воспринимается как обратное смещение от конца переменной;
- В блоки $'...', echo и printf добавлено распознавание escape-последовательностей \uXXXX и \UXXXXXXXX;
- В команде test/[/[[ добавлена поддержка оператора "-v", который возвращает "истину" в случае установки указанной в качестве аргумента переменной;
- Команда "time" теперь может использоваться для вывода времени выполнения текущего shell и дочерних процессов;- До...
URL: http://www.gnu.org/software/bash/
Новость: http://www.opennet.me/opennews/art.shtml?num=29591
что за опция -e такая у команды cd?
http://pubs.opengroup.org/onlinepubs/9699919799/
If the -e option is supplied with -P, and the current working directory cannot be successfully determined after a successful directory change, cd will return an unsuccessful status.Это из мана. А при чем тут POSIX пока загадка.
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/cd...
> Указание отрицательного индекса массива теперь не приводит к ошибке и воспринимается как обратное смещение от конца массива;Лучше поздно, чем никогда
Если длинна масива 3 элемента, а мы указываем a[-5] , то bash пройдёт по кругу два раза назад, или всё-таки вернёт Exception ?
использую zsh уже 4 года
А чем ZSH лучше bash? Спрашиваю не подкола ради, но просвещения для.
>А чем ZSH лучше bash?Всем :-)
Во-первых, из коробки работает "умное" дополнение практически для всех команд. По сравнению с этим великолепием, bash-completions выглядит жалким огрызком.
Во-вторых, возможность расшаривания истории команд - вводишь команду в одной консоли, и она тут же появляется в истории всех твоих консолей, включая открытые в данный момент.
В-третьих, коррекция вводимых команд
$ ehco test
zsh: correct 'ehco' to 'echo' [nyae]? y
test
(можно даже параметры корректировать).В-четвертых, можно, например, настроить навигацию по меню дополнения стрелками - скажем, при дополнении команды kill будет красивая менюшка с интерактивным выбором.
Ну и куча других фич (перечисленное - то, вспомнилось в первую очередь).
>[оверквотинг удален]
> Во-вторых, возможность расшаривания истории команд - вводишь команду в одной консоли, и
> она тут же появляется в истории всех твоих консолей, включая открытые
> в данный момент.
> В-третьих, коррекция вводимых команд
> $ ehco test
> zsh: correct 'ehco' to 'echo' [nyae]? y
> test
> (можно даже параметры корректировать).
> В-четвертых, можно, например, настроить навигацию по меню дополнения стрелками - скажем,
> при дополнении команды kill будет красивая менюшка с интерактивным выбором.этими берюльками ты будешь на своём десктопе играться. а на любом нормальном сервере zsh нет и быть не может в принципе (и bash то не всегда есть).
> любом нормальном сервере zsh нет и быть не может в принципеКстати, о zsh на серверах :-)
# rm -rf /*
zsh: sure you want to delete all the files in / [yn]? n
>> любом нормальном сервере zsh нет и быть не может в принципе
>Кстати, о zsh на серверах :-)
># rm -rf /*
>zsh: sure you want to delete all the files in / [yn]? nА я-то, дурень, все по-старинке... просто не пускаю идиотов под рутом на сервера.
> а на любом нормальном сервере zsh нет и быть не может в принципе
> (и bash то не всегда есть).Это у лохов и несчастных. А у умных и предусмотрительных бывали прецеденты, когда встроенное в zsh помогало выкрутиться, например, при убитой libc.
2 Ytch: не-идиот тоже бывает уставшим (когда ему тоже лучше не лезть, даже если очень надо), и руки порой могут дать осечку даже при многолетней привычке притормаживать перед энтером.
>не-идиот тоже бывает уставшим (когда ему тоже лучше не лезть, даже если очень надо), и руки порой могут дать осечку даже при многолетней привычке притормаживать перед энтером.Ну в подобном случае и запрос подтверждения вполне может не помочь - просто на "автопилоте" нажмешь 'yes'. А может и спасет. Смотря насколько сложна обстановка (усталость, спешка, кол-во спирта в крови и т. п.).
> этими берюльками ты будешь на своём десктопе играться. а на любом нормальном
> сервере zsh нет и быть не может в принципе (и bash то не всегда есть).Ну куда там до гуру, который в sh без readline вбивал-вбивал коммандочки по буковки, после чего его уволили наxep, так что он пришел зелёных по форумам поучать :))
> этими берюльками ты будешь на своём десктопе играться. а на любом нормальном
> сервере zsh нет и быть не может в принципе (и bash
> то не всегда есть).В SLES zsh установлен по дефолту. Как расшифровывается SLES спросишь у мамы
Да, советую почитать еще вот здесь: http://debiania.blogspot.com/2009/07/zsh.html
> А чем ZSH лучше bash? Спрашиваю не подкола ради, но просвещения для.По сравнению с bash удобнее и сильно экономит время, попробуете тормозные удалёнки где даже ssh еле ворочается - сразу поймёте.
http://habrahabr.ru/blogs/linux/82537/
Bash
Latest Stable release: 4.2 February 13, 2011
License: GPL 3
Z shell
Latest Stable release: 4.2.7 December 18, 2007
License: MIT-like
+ bash есть везде от Mac OS X до Solaris из коробки.
итого, вы голубчик промахнулись, протухло явно zsh.
set -o vi в руках любителя вим, либо знание емаксовых хоткеев + использование биты ! + использование !$ и подобных сокращений - и zsh как-то становится ненужен.
> set -o vi в руках любителя вим, либо знание емаксовых хоткеев +
> использование биты ! + использование !$ и подобных сокращений
> - и zsh как-то становится ненужен.Сразу видно человека, который не знает ничего про zsh :)
> Z shell
> Latest Stable release: 4.2.7 December 18, 2007
> License: MIT-like
> итого, вы голубчик промахнулись, протухло явно zsh.Спасибо, поржал :-)
$ echo $ZSH_VERSION
4.3.10
>Спасибо, поржал :-)
>$ echo $ZSH_VERSION
>4.3.10потому что кроме как ржать ты ни на что не способен.
> http://zsh.sourceforge.net/FAQ/zshfaq01.html#l6И? Вы ещё скажите, что mutt-1.5 пользоваться нельзя.
Нет, не везде. В коммерческих UNIX баш обычно не ставится из коробки. Про солярис сейчас точно не скажу, давно не работал, но в AIX точно надо ставить его отдельно. А на маке не только баш есть, там кучу всего понапихали.
> Нет, не везде. В коммерческих UNIX баш обычно не ставится из коробки.
> Про солярис сейчас точно не скажу, давно не работал, но в
> AIX точно надо ставить его отдельно. А на маке не только
> баш есть, там кучу всего понапихали.в варианте core install (с которого обычно и начинают ставить сервера), том, который мегабайт на 200, нет ни bash, ни zsh.
а если ставить дополнительно (они оба лежат на диске), то разницы нет, pkgadd -d blabla SUNWzsh или pkgadd -d blabla SUNWbash.
лично я всегда ставлю zsh :)
> итого, вы голубчик промахнулись, протухло явно zsh.zsh-4.3 прекрасно работает. :) (а в bash4 кой-чего посломали по сравнению с 3.x, к сожалению)
И что же там сломали по сравнению с 3.х?
> И что же там сломали по сравнению с 3.х?---
Практически все скрипты на sh -u, которые используют $@ или $*, имеют
отличные шансы сломаться при переезде с bash3 на bash4.
--- http://lists.altlinux.org/pipermail/devel/2010-August/183727...Тж.
http://lists.altlinux.org/pipermail/devel/2010-August/183714...
http://lists.altlinux.org/pipermail/devel/2010-August/183852...
http://lists.altlinux.org/pipermail/devel/2010-August/183890...
> + bash есть везде от Mac OS X до Solaris из коробки.На нормальных системах (FreeBSD) нет и не будет никогда.
> Latest Stable release: 4.2.7 December 18, 2007
Странно, откуда тогда а у меня
zsh 4.3.10 (i386-portbld-freebsd8.1)
> итого, вы голубчик промахнулись, протухло явно zsh.
Система ваша протухла и мозги.
> Bash
> Latest Stable release: 4.2 February 13, 2011
> License: GPL 3
> Z shell
> Latest Stable release: 4.2.7 December 18, 2007
> License: MIT-like
> + bash есть везде от Mac OS X до Solaris из коробки.
> итого, вы голубчик промахнулись, протухло явно zsh.В *BSD его нет из коробки
Для таких умников хочется кнопку "минус пицотмильонов". Задолбали.
> Указание отрицательного индекса массива теперь не приводит к ошибке
> и воспринимается как обратное смещение от конца массива;Чую появление бесконечных циклов в старых скриптах.
А как Вариант ... Вы написали замену?
где это у вас такое ?вроде с первого класса проходят что индексы у массивов всегда положительные и начинаются с 0 или 1
>вроде с первого класса проходят что индексы у массивов всегда положительные и начинаются с 0 или 1с нуля
вы мало знакомы с языками
> вы мало знакомы с языкамиабалденный аргумент, в виду своей скромности скажу что повседневно использую 7
различных языков только программирования, а вы?http://en.wikipedia.org/wiki/Zero-based_numbering
как не трудно признавать но то что в lua с 1 не знал. но это маразм как и после -1 пойдет 1. и вообще у lua нет авторитета в этом вопросе, т.к язык создан для домохозяек и видимо по этой причине он такой.
пруф за пруф
>> вы мало знакомы с языками
> абалденный аргумент, в виду своей скромности скажу что повседневно использую 7
> различных языков только программирования, а вы?
> http://en.wikipedia.org/wiki/Zero-based_numbering
> как не трудно признавать но то что в lua с 1
> не знал. но это маразм как и после -1 пойдет 1.
> и вообще у lua нет авторитета в этом вопросе, т.к язык
> создан для домохозяек и видимо по этой причине он такой.не отрицательную а обращение по отрицательным индексам так же поддерживают пайтон и раби
>> вы мало знакомы с языками
> абалденный аргумент, в виду своей скромности скажу что повседневно использую 7
> различных языков только программирования, а вы?
> http://en.wikipedia.org/wiki/Zero-based_numbering
> как не трудно признавать но то что в lua с 1
> не знал. но это маразм как и после -1 пойдет 1.
> и вообще у lua нет авторитета в этом вопросе, т.к язык
> создан для домохозяек и видимо по этой причине он такиз вашего пруфа
Older programming languages, such as Fortran or Cobol have array subscripts starting with one, because they were meant as high-level programming languages, and as such they had to have a correspondence to the usual ordinal numbers. Some recent languages, such as Lua, have adopted the same convention for the same reason.
видимо вы не тока не знакомы вы даже внимательно прчитать не можете
2.16 Вот изящный трюк: если я пишу
int realarray[10];
int *array = &realarray[-1];,то теперь можно рассматривать "array" как массив, у которого индекс
первого элемента равен единице.О: Хотя этот прием внешне привлекателен (и использовался в старых
изданиях книги "Numerical Recipes in С"), он не удовлетворяет
стандартам С. Арифметические действия над указателями определены лишь
тогда, когда указатель ссылается на выделенный блок памяти или на
воображаемый завершающий элемент, следующий сразу за блоком. В
противном случае поведение программы не определено, _даже если
указатель не переназначается_. Код, приведенный выше, плох тем,
что при уменьшении смещения может быть получен неверный адрес
(возможно, из-за циклического перехода адреса при пересечении
границы сегмента).Смотри: ANSI Разд.3.3.6 c. 48, Rationale Разд.3.2.2.3 c. 38;
K&R II Разд.5.3 c. 100, Разд.5.4 c. 102-3, Разд.A7.7 c. 205-6.
>потому что кроме как ржать ты ни на что не способен.
>http://zsh.sourceforge.net/FAQ/zshfaq01.html#l6любителям всё быстренько обосрать:
ftp://ftp.zsh.org/pub/
Файл:zsh-4.3.11.tar.bz2 2802 KB 20.12.2010
> любителям всё быстренько обосрать:
> ftp://ftp.zsh.org/pub/
> Файл:zsh-4.3.11.tar.bz2 2802 KB 20.12.2010А то, что ветка 4.3 помечена как unstable для разработчиков, вы конечно не заметили ?
>> Файл:zsh-4.3.11.tar.bz2 2802 KB 20.12.2010
> А то, что ветка 4.3 помечена как unstable для разработчиков, вы конечно не заметили ?Я выше уже дал линк на официальный FAQ zsh (http://zsh.sourceforge.net/FAQ/zshfaq01.html#l6) . Но упёртые пользователи zsh настолько ленивы что не читают даже коротеньких FAQ по продукту который используют.
Как бы вам уже донести до мозга, что некоторые unstable "продукты" работают стабильнее многих стабильных. Подозреваю, что если бы это был не zsh, а debian, то вы бы заткнулись.
Скажите, а что за бред про глобальные переменные:
>Для команд declare/typeset добавлена новая опция "-g", при указании которой переменные имеют глобальную область видимости, т.е. видны даже в отдельных функциях;В BASH переменные, объявленные в основном коде будут видны во всех сложенных в него функциях, это по-моему вполне стандартное поведение любого языка программирования. Если же имелось в виду, что переменная, объявленная глобально внутри функции, будет видна везде (и в основном коде тоже), при этом сохраняя своё значение между вызывами функции, то это хорошо (хоть и не шибко сильно нужно, если не сказать больше), но тогда бы и написали об этом по-человечески.
Насчёт сравнения zsh и bash - вы же всё-таки не забывайте о том, что речь идёт прежде всего о языке программирования shell, а не об удобствах оболочки. Безусловно, zsh как оболочка круче, в принципе пока что zsh опережает bash и как язык программирования (вот только скорость, что у bash, что у zsh ниже плинтуса), просто я не понимаю, причём здесь то, устанавливается где-то BASH по дефолту или нет, а уж особенно в контексте сравнения Linux и FreeBSD - с учётом того, что в последнем по дефолту вообще устанавливается довольно примитивная оболочка csh (название которой ИМХО говорит само за себя и полностью соответствует семантике встроенного языка).