#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 тысячами баллов забывают простейший синтаксис. Не корите себя.