LINUX.ORG.RU

Ибо не Ъ.

anonymous
()

как уже написали исторически раньше был jot для этой цели. Их обоих нет в позиксе.

В нетбсд не так давно добавили и seq

dilmah ★★★★★
()
Ответ на: комментарий от Muromec

> {1..n} работает ли во фре, или хотябы в баше, не помню

тут же накладываются лимиты на длину командной строки.

dilmah ★★★★★
()
Ответ на: комментарий от Muromec

> эммм... а чем подстановка $(seq 1 n) кардинально отличается от {1..n} ?

такая подстановка конечно ничем принципиально не отличается. Я имел в виду случай

seq 1 N | script

по сравнению с:

echo {1..N} | script

dilmah ★★★★★
()
Ответ на: комментарий от seiken

чем не нравиться такой цикл?

unset i
until [ $((i+=1)) -gt 10 ]; do
    echo $i
done

не использует _ни одной_ внешней команды,
все встроенные; builtin(1):

 Command       External    csh(1)    sh(1)
 unset         No          Yes       Yes
 until         No          No        Yes
 test          Yes         No        Yes
 echo          Yes         Yes       Yes

а jot(1) и seq(1) являются внешними (external)

anonymous
()
Ответ на: комментарий от anonymous

это намек на то, что чем больше внешних команд, тем сложнее
портировать скрипт на другую систему, т.к. надо отлавливать
особенности (вспомним реализации sed и gnu sed и насколько они
совместимы...) не одной, а нескольких команд

кстати, в большинстве простых случаев sed можно заменить циклом, например

basename() {
while read line; do
    case $line in
	*pattern*)
	    line=${line##*/}
	    echo $line
    esac
done
}

echo /path/to/smth | basename

anonymous
()
Ответ на: комментарий от anonymous

вот получше

split() {
    local line delim=$1

    while read line; do
        while :; do
            echo ${line%%$delim*}
            [ "$line" = "${line#*$delim}" ] && exit
            line=${line#*$delim}
        done
    done
}

echo 127.0.0.1 | split .
или
echo 2002:c058:6301:: | split :

anonymous
()
Ответ на: комментарий от anonymous

echo 'print " ".join(map(str, xrange(0,5)))'|python

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.