На самом деле это единственный раздел про unix на этом форуме
Модераторы: /dev/random , Модераторы разделов
sedikpoll
Сообщения: 100
Сообщение
sedikpoll » 08.10.2013 12:20
В сценарии перечисляю строки ручками:
Код: Выделить всё
...
...
...
echo '1. ABC:'; ...
echo '2. QWERTY:'; ...
echo '3. ASDF:'; ...
...
Не могу полностью понять как сделать простейший счетчик что бы избавится от ручного набора "1. 2. 3. " т.д. в начале строки. Понимаю что должно быть что то вроде цикла:
Код: Выделить всё
...
...
...
COUNTER=$[$COUNTER +1]
echo "${COUNTER} ABC:"; ...
echo "${COUNTER} QWERTY:"; ...
...
Направьте на путь праведный.
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:
Сообщение
drBatty » 08.10.2013 12:29
sedikpoll писал(а): ↑ 08.10.2013 12:20
Не могу полностью понять как сделать простейший счетчик что бы избавится от ручного набора "1. 2. 3. " т.д. в начале строки. Понимаю что должно быть что то вроде цикла:
наверное вы это хотите:
Код: Выделить всё
COUNT=0
while (( COUNT < 10 )); do
echo $COUNT
(( COUNT++ ))
done
PS: ВАЖНО: это bash, а не POSIX!
а может даже этого
Код: Выделить всё
declare -a ARRAY
ARRAY=( ABC QWERTY "x Y z" )
COUNT=0
while (( COUNT < 3 )); do
echo $COUNT ${ARRAY[$COUNT]}
(( COUNT++ ))
done
sedikpoll
Сообщения: 100
Сообщение
sedikpoll » 08.10.2013 12:35
drBatty писал(а): ↑ 08.10.2013 12:29
sedikpoll писал(а): ↑ 08.10.2013 12:20
Не могу полностью понять как сделать простейший счетчик что бы избавится от ручного набора "1. 2. 3. " т.д. в начале строки. Понимаю что должно быть что то вроде цикла:
наверное вы это хотите:
Код: Выделить всё
COUNT=0
while (( COUNT < 10 )); do
echo $COUNT
(( COUNT++ ))
done
PS: ВАЖНО: это bash, а не POSIX!
а может даже этого
Код: Выделить всё
declare -a ARRAY
ARRAY=( ABC QWERTY "x Y z" )
COUNT=0
while (( COUNT < 3 )); do
echo $COUNT ${ARRAY[$COUNT]}
(( COUNT++ ))
done
Спасибо за ответы, но не совсем то, возможно я не корректно объяснил свою задачу, попытаюсь опять.
Код: Выделить всё
export COUNT=1
while (( COUNT < 3 )); do
echo "${COUNT} ABC:";
echo "${COUNT} QWERTY:";
(( COUNT++ ))
done
На выходе получаю:
Нужно
Subj
Сообщения: 151
Статус: Useful
ОС: win
Сообщение
Subj » 08.10.2013 12:51
Если совсем по тупому, то как то так
count=1
incr() {
echo "$count. $@"
let count=count+1
}
incr ABC
incr QWERTY
Building better software with Ada
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux
Сообщение
Bizdelnick » 08.10.2013 12:52
echo "ABC:\nQWERTY:" | cat -n не подходит?
См. также info sed 'cat -n' .
Пишите правильно:
в консоли
вк у́пе (с чем-либо)
в о бщем
воо бще в течение (часа)
новичо к
ню анс
по у молчанию приемле мо
проблем а
пробо вать
траф ик
Subj
Сообщения: 151
Статус: Useful
ОС: win
Сообщение
Subj » 08.10.2013 12:59
Bizdelnick писал(а): ↑ 08.10.2013 12:52
echo "ABC:\nQWERTY:" | cat -n не подходит?
-e еще надо в echo. Или сразу уж
Building better software with Ada
sedikpoll
Сообщения: 100
Сообщение
sedikpoll » 08.10.2013 13:15
Subj, не совсем понял как впихнуть предложеный вами вариант.
Bizdelnick, cat тут не вариант, насколько я понимаю.
#!/bin/sh
UserAgent="User-Agent: Mozilla/5.001 (windows; U; NT4.0; en-US; rv:1.0) Gecko/25250101"
echo "
1. ABC:"; curl -sH $UserAgent
http://site/2.txt | grep -Ei "stable tag"; curl -sH $UserAgent
http://site/1/ | grep -i "Download Version"
echo "
2. QWERTY:"; curl -sH $UserAgent
http://site/1.txt | grep -Ei "stable tag"; curl -sH $UserAgent
http://site/2/ | grep -i "Download Version"
Subj
Сообщения: 151
Статус: Useful
ОС: win
Сообщение
Subj » 08.10.2013 13:24
sedikpoll писал(а): ↑ 08.10.2013 13:15
Subj, не совсем понял как впихнуть предложеный вами вариант.
Код: Выделить всё
count=1
echoi() {
echo "$count. $@"
let count=count+1
}
echoi "ABC:"; curl -sH $UserAgent http://site/2.txt | grep -Ei "stable tag"; curl -sH $UserAgent http://site/1/ | grep -i "Download Version"
echoi "QWERTY:"; curl -sH $UserAgent http://site/1.txt | grep -Ei "stable tag"; curl -sH $UserAgent http://site/2/ | grep -i "Download Version"
Building better software with Ada
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:
Сообщение
drBatty » 08.10.2013 13:25
sedikpoll писал(а): ↑ 08.10.2013 12:35
1 ABC:
2 QWERTY:
может
Код: Выделить всё
COUNT=1
echo $COUNT ABC:
(( COUNT++ ))
echo $COUNT QWERTY:
так что-ли?
/dev/random
Администратор
Сообщения: 5289
ОС: Gentoo
Сообщение
/dev/random » 08.10.2013 17:15
Задача определена не очень внятно, но я думаю, что вы хотели получить это:
echo $((++count)) abc
echo $((++count)) def
echo $((++count)) ghi
echo $((++count)) jkl