Re: pipe status bashizm
From: Aleksey Cheusov Date: Wed, 06 Jun 2007 11:43:54 +0300 [] comp.unix.shell FAQ http://groups.google.com/group/comp.unix.shell/browse_thread/thread/5075fe6c19ddabb9/7a08dffe06316a29?lnk=stq=comp.unix.shell+faq+pipe+statusrnum=7hl=en#7a08dffe06316a29 Там пример в посикс шэле, а баги всё равно эвойдят: |-*- if [ x$a = 'x|' ]; then |-*- Некоторые считают, что все, что появилось после UNIX v.7 - зло. Видимо, поэтому в 10-ой(!!!) соляре совершенно идиотский /bin/sh, _по умолчанию_ awk == oawk, tail не понимают -n и прочее и прочее. Лично я считаю, что это проблемы соляры. Что до лишнего x, ну пусть лежит, для убогих. Скриптик то замечательный. |-*- [EMAIL PROTECTED]:/tmp$ bash -c test '' -eq 0 ; echo \$? bash: line 0: test: : integer expression expected 2 [EMAIL PROTECTED]:/tmp$ dash -c test '' -eq 0 ; echo \$? 0 [EMAIL PROTECTED]:/tmp$ busybox sh -c test '' -eq 0 ; echo \$? 0 [EMAIL PROTECTED]:/tmp$ |-*- Ага, баш всё таки более прошареный? Не, не то, чтобы очень... /bin/sh == bash - зло. Такое же примерно, как солярный /bin/sh. == во встроенном test - банальная диверсия. 0 ~/bin/bash -c 'test a == b' 1 ~/bin/bash -c 'test a == a' 0 ~ Что это, kит юникса -- shell -- десятилетия спустя ... работает с фичами? Кто-то может сказать, что перл в этом не виноват. Почему тогда перл, не ваш шел? Это к Нечаеву. У него есть мысли по этому поводу, но он их не спешит оформить в письменном виде. Почему перл? Читая ту книжку я понял так, что набор юникс утилит всё время сосал. Гну проект как-то пытался улучшить ситуацию, а дядя Ларри пошёл по другому пути. Таким образом всё стало быдло-скрипто-кодерством (ещё до жабаскрипта и пых-пыха :). Да ну его в топку :) -- Best regards, Aleksey Cheusov. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: pipe status bashizm
From: Aleksey Cheusov Date: Wed, 06 Jun 2007 11:43:54 +0300 [] comp.unix.shell FAQ http://groups.google.com/group/comp.unix.shell/browse_thread/thread/5075fe6c19ddabb9/7a08dffe06316a29?lnk=stq=comp.unix.shell+faq+pipe+statusrnum=7hl=en#7a08dffe06316a29 Там пример в посикс шэле, а баги всё равно эвойдят: |-*- if [ x$a = 'x|' ]; then |-*- В шелах было время, когда пустота в строковых сравнениях неадекватно работала. Впрочем в арифметических сравнениях она и по сей день неадекватно работает (: |-*- [EMAIL PROTECTED]:/tmp$ bash -c test '' -eq 0 ; echo \$? bash: line 0: test: : integer expression expected 2 [EMAIL PROTECTED]:/tmp$ dash -c test '' -eq 0 ; echo \$? 0 [EMAIL PROTECTED]:/tmp$ busybox sh -c test '' -eq 0 ; echo \$? 0 [EMAIL PROTECTED]:/tmp$ |-*- Ага, баш всё таки более прошареный? |-*- [EMAIL PROTECTED]:/tmp$ bash -c -v test \printf '\t'\ -eq 0 ; echo \$? test-eq 0 ; echo $? 0 [EMAIL PROTECTED]:/tmp$ bash -c -v test \printf ' '\ -eq 0 ; echo \$? test -eq 0 ; echo $? 0 [EMAIL PROTECTED]:/tmp$ bash -c -v test \printf 'a'\ -eq 0 ; echo \$? test a -eq 0 ; echo $? bash: line 0: test: a: integer expression expected 2 [EMAIL PROTECTED]:/tmp$ |-*- Что это, kит юникса -- shell -- десятилетия спустя ... работает с фичами? Кто-то может сказать, что перл в этом не виноват. Почему тогда перл, не ваш шел? Почему перл? Читая ту книжку я понял так, что набор юникс утилит всё время сосал. Гну проект как-то пытался улучшить ситуацию, а дядя Ларри пошёл по другому пути. Таким образом всё стало быдло-скрипто-кодерством (ещё до жабаскрипта и пых-пыха :). -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: pipe status bashizm
Кто-то может сказать, что перл в этом не виноват. Почему тогда перл, не ваш шел? Почему перл? Читая ту книжку я понял так, что набор юникс утилит всё время сосал. Гну проект как-то пытался улучшить ситуацию, а дядя Ларри пошёл по другому пути. Таким образом всё стало быдло-скрипто-кодерством (ещё до жабаскрипта и пых-пыха :). Ну, надо понимать, что из всего набора в несколько десятков юникс утилит с перлом в руках можно смело забыть про существование трех - awk, sed и grep. И то - см. perldoc perlvar, описание $/, второе вхождение слова awk... Дядя Остерхут и то лучше - его инструмент еще и sh с грехом пополам способно заменить. (Без греха и пополама - только csh.) Но быдло-скрипто-кодеры слова tcl, как правило, и не знают...
Re: pipe status bashizm
Как-то был вопрос о том, как можно проверить выходной статус у начала трубы. Bourne shell и немного воображения могут это сделать и без башизма [0]. [0] http://unix.org.ua/orelly/unix/upt/ch47_02.htm comp.unix.shell FAQ http://groups.google.com/group/comp.unix.shell/browse_thread/thread/5075fe6c19ddabb9/7a08dffe06316a29?lnk=stq=comp.unix.shell+faq+pipe+statusrnum=7hl=en#7a08dffe06316a29 -- Best regards, Aleksey Cheusov. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
bashless (Re: pipe status bashizm)
On Tue, Jun 05, 2007 at 02:26:41PM +0400, Alexander GQ Gerasiov wrote: На Tue, 5 Jun 2007 03:36:01 + (UTC) Oleg Verych [EMAIL PROTECTED] записано: Как-то был вопрос о том, как можно проверить выходной статус у начала трубы. Bourne shell и немного воображения могут это сделать и без башизма [0]. Хы. Мило. Мне тогда чуть-чуть не хватило эту идею реализовать в работающий вариант. Но все же проще сделать bash-специфичную фичу. Всё таки хочется отметить достаточно гибкий способ получения различного рода информации из т.н. членов трубы. Конечно это делается за счёт дополнительных саб-шелов, что в случае баш-специфического рассширения имеет только один результат -- выходной статус процесса и больше ничего. Если хочется помеpять скорость работы BaSH на реальных зОдачах, интересующиеся личности могут глянуть скрипт по поиску лишних линкованых либ в файлах в текущей директории [0]. Написал ради интереса как к возможностям нержавеющего Боурн шела, так и к самим DSO. Оригинальный скрипт от Manoj Srivastava явно нелинейный или даже квадратичный по производительности, да и по используемым тулзам (пердл, авк, в длинной трубе). [0] checklib NG ;) ftp://flower.upol.cz/checklibs.../ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: pipe status bashizm
05.06.07, Oleg Verych[EMAIL PROTECTED] написал(а): Как-то был вопрос о том, как можно проверить выходной статус у начала трубы. Bourne shell и немного воображения могут это сделать и без башизма [0]. [0] http://unix.org.ua/orelly/unix/upt/ch47_02.htm Угу, фиг запомнишь эту навороченную конструкцию.
Re: pipe status bashizm
Twas brillig at 13:34:08 05.06.2007 UTC+04 when Dmitry Fedorov did gyre and gimble: DF Угу, фиг запомнишь эту навороченную конструкцию. А потом ещё фиг поймёшь, что она делает, когда в скрипте увидишь. -- JID: [EMAIL PROTECTED]
Re: pipe status bashizm
На Tue, 5 Jun 2007 03:36:01 + (UTC) Oleg Verych [EMAIL PROTECTED] записано: Как-то был вопрос о том, как можно проверить выходной статус у начала трубы. Bourne shell и немного воображения могут это сделать и без башизма [0]. Хы. Мило. Мне тогда чуть-чуть не хватило эту идею реализовать в работающий вариант. Но все же проще сделать bash-специфичную фичу. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
pipe status bashizm
Как-то был вопрос о том, как можно проверить выходной статус у начала трубы. Bourne shell и немного воображения могут это сделать и без башизма [0]. [0] http://unix.org.ua/orelly/unix/upt/ch47_02.htm -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]