Почему я не получаю значение для каждой строки?

#bash

#bash

Вопрос:

Почему я не получаю число из каждой строки в этом коде?
Кто-нибудь, пожалуйста, может сказать мне, что я сделал не так?

 #!/bin/bash

seq=$(which seq)
a=2290
b=2300
gen=$($seq $a $b)

echo "GENERATING..."

for nr in "$gen"
do
        echo "hello $nr"
done

echo "DONE."
  

Я получаю это:

 DOWNLOADING...
hello 2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
DONE.
  

Комментарии:

1. Какой результат вы получаете? Вы пробовали повторять промежуточные значения?

2. не уверен (пока), попробуйте с awk? seq 2290 2300 | awk '{print "hello"FS$0}'

3. @matchew ваша однострочная версия работает 1

Ответ №1:

Измените for nr in "$gen" на for nr in $gen

Удалите кавычки … это обрабатывает всю последовательность как один элемент.

Вывод перед:

ГЕНЕРАЦИЯ...
привет 2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
Выполнено.

Вывод после:

ГЕНЕРАЦИЯ...
привет 2290
привет 2291
привет 2292
привет 2293
привет 2294
привет 2295
привет 2296
привет 2297
привет 2298
привет 2299
привет 2300
Выполнено.

Комментарии:

1. Вообще не n00bish. Я вижу, что люди с 2-3 тысячами баллов забывают простейший синтаксис. Не корите себя.