Re: pipe status bashizm

2007-06-11 Пенетрантность Aleksey Cheusov
  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

2007-06-09 Пенетрантность Oleg Verych
 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

2007-06-09 Пенетрантность Artem Chuprina

Кто-то может сказать, что перл в этом не виноват. Почему тогда перл,
не ваш шел?

Почему перл? Читая ту книжку я понял так, что набор юникс утилит всё
время сосал. Гну проект как-то пытался улучшить ситуацию, а дядя Ларри
пошёл по другому пути. Таким образом всё стало быдло-скрипто-кодерством
(ещё до жабаскрипта и пых-пыха :).


Ну, надо понимать, что из всего набора в несколько десятков юникс
утилит с перлом в руках можно смело забыть про существование трех -
awk, sed и grep.  И то - см. perldoc perlvar, описание $/, второе
вхождение слова awk...

Дядя Остерхут и то лучше - его инструмент еще и sh с грехом пополам
способно заменить.  (Без греха и пополама - только csh.)  Но
быдло-скрипто-кодеры слова tcl, как правило, и не знают...


Re: pipe status bashizm

2007-06-06 Пенетрантность Aleksey Cheusov
 Как-то был вопрос о том, как можно проверить выходной статус у
 начала трубы. 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)

2007-06-06 Пенетрантность Oleg Verych
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

2007-06-05 Пенетрантность Dmitry Fedorov

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

2007-06-05 Пенетрантность Mikhail Gusarov

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

2007-06-05 Пенетрантность Alexander GQ Gerasiov
На 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

2007-06-04 Пенетрантность Oleg Verych
Как-то был вопрос о том, как можно проверить выходной статус у начала
трубы. 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]