|
|
ru.unix- RU.UNIX ---------------------------------------------------------------------- From : Valentin Nechayev 2:5020/400 11 Apr 2004 09:47:27 To : "mitrohin a.s." Subject : Re: shell programming: собрать командную строку? -------------------------------------------------------------------------------- >>> mitrohin a.s. wrote: VN>> Поищи мой постинг по разборкам с IFS когда в IFS не только пробельные VN>> символы. bash лажанулся так же как остальные (из испытанных - всё по VN>> Posix'у сделал только zsh). Так что уже как минимум на один баг больше. mas> не будем мелочиться ;) баг ведь общий... Баг разный - разные шеллы ведут себя по-разному. VN>> Hо на самом деле у баша дофига особенностей, которые... мнэээ... багом VN>> назвать сложно, но то что они нарушают здравый смысл - факт. VN>> Hапример, когда я последний раз проверял - вызванные из PS1 программы VN>> сбивали $? полученный от предыдущего запущенного процесса. VN>> Пути длиннее PATH_MAX (на всякий случай hint - длина полного пути файла VN>> в юниксах не ограничена) сводят его с ума. И таких особенностей я VN>> насчитывал mas> __mkdir() mas> { mas> DIRNAME="`printf "%08X" "$1"`"; mas> mkdir -v "$DIRNAME"; mas> if [ $? != 0 -o $1 = 0 ]; then mas> exit 0; mas> fi mas> cd "$DIRNAME" || exit 0; mas> __mkdir "$(($1 - 1))" mas> } mas> __mkdir "$1" mas> обламываются как bash, так и sh ;) - опять ничья... sh обломился в моих экспериментах значительно дальше - на длине в 64K. Подозреваю, что это связано с freebsd'шной реализацией fts - там тот же лимит. mas> и если hint принять во-внимание - зачем тогда PATH_MAX? неужто mas> ограничение на кусок между соседними '/'? Ограничение воспринимаемого одним сисколлом за раз. Между '/' - это NAME_MAX. VN>> с десяток. Далее, он повторяет пусть и закоренелые и давно VN>> документированные, но давно известные глупости всех шеллов, не делая VN>> возможности их исправить при желании. Как сделать без манипуляции со VN>> всякими дурными GLOBIGNORE шаблон типа "все файлы в каталоге без `.' и VN>> `..'"? А тут же - с ними? mas> не понял... mas> echo /home/swp/{[^.]*,.[^.]*} mas> ? Файл "..a" твоя команда не покажет. VN>> А что у него называется историей команд - вообще недостойно называться VN>> свойством - хуже школьной поделки. Сравни хотя бы с tcsh. mas> сравнивать код? или что-то в функциональности плохо? мне тяжело сравнивать mas> с tcsh - не пользуюсь я им... Посмотри вид его .history. К команде пишется время; кроме того, несколько разных tcsh с разных терминалов пишут историю не конфликтуя друг с другом. mas> вполне допускаю что tcsh очень не плох - но mas> интересует-то sh против bash. Ты утверждал, что в баше багов нет (или почти нет). -netch- --- ifmail v.2.15dev5.3 * Origin: Dark side of coredump (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор Архивное /ru.unix/736814697fd0.html, оценка из 5, голосов 10
|