[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Нужен ли bash



AP> В сообщении от Wednesday 24 September 2008 16:56:06 Dmitry E. Oboukhov
AP> написал(а):
AP>>> И как вы на шелле сделаете filter_cmd в том файле, откуда указанную
AP>> цепочку AP> вызываете? Будете для каждого фильтра отдельный скрипт
AP>> создавать? зачем? напишу НАПРИМЕР так:
AP>> 
AP>> filter_cmd()
AP>> {
AP>>         while read a; do
AP>>                 echo =$a=
AP>>         done
AP>> }
AP>> 
AP>> cmd1|cmd2|filter_cmd|cmd3
AP>> 
AP>> и оно поставит знаки равно в начале и конце строки :)

AP> Это работает в произвольном шелле? Не верю!
nbw:[~]$ cat test.sh 
#!/bin/dash

filter_cmd()
{
    while read a; do
        echo "=$a="
    done
}

ls|filter_cmd|cat

nbw:[~]$ dash test.sh 
=00454997.gif=
=004_Bratya_Riko=
=1.html=
=2006-09-25_019.jpg=
...

[off]ох е, сколько мусора скопилось :)[/off]

AP> Если язык программирования в том числе лучше выполняет _все_ операции, которые
AP> умеет делать шелл, то зачем нужен последний? Именно об этом и топик.

AP>> я к нему приделал уведомления всплывающие через libnotify
AP>> получилось нечто вроде
AP>> 
AP>> msg=`iconv -t utf8|html2text|еще что-то не помню`
AP>> notify-send бла-бла -- $msg
AP>> 
AP>> в чем проблема то перекодировать кодировку?

AP> Если у вас этот скрипт вызывается с существенным объемом данных, скажем,
AP> тысячу раз в секунду, то вызов немаленького бинаря iconv может стать
AP> существенной проблемой. Или линуксовый шелл у нас теперь только для
AP> одноюзерских десктопов годится?..
блин ну ежику понятно что когда скорость проблема надо брать другой
 инструмент. и вполне возможно что и тикль ваш любимый не потянет по 
скорости в некоторых случаях

о чем спор?,
AP>> 
AP>> и бинарный текстовый режим не знаю где нужен
AP>> вот построчная буферизация нужна бывает когда протоколы обмена ваяешь
AP>> но протоколы это уже явно не шелловая задача (хотя http-smtp сервера на
AP>> шелле я где-то видел), но тут read a написать никто не мешает :)

AP> Если шелл служит для связки врешних утилит, то он должен уметь "склеивать"
AP> _любые_ утилиты. Но, как показывает практика, это не так.

как показывает практика универсальных инструментов нет

например на тикле нет нормальных регвыражений
а еще блин претендует быть языком программирования ;)
--

. ''`. Dmitry E. Oboukhov
: :’  : unera@debian.org
`. `~’ GPGKey: 1024D / F8E26537 2006-11-21
  `- 1B23 D4F8 8EC0 D902 0555  E438 AB8C 00CF F8E2 6537

Attachment: signature.asc
Description: Digital signature


Reply to: