Нижче наведено якийсь псевдо-код для того, що я намагаюся досягти:
#!/bin/bash
# I already have the variable below figured out (positive integer):
numlines=$([returns number of lines containing specific characters in a file])
# This is basically what I want to do with it:
for i in {1..$numlines}; do
# the part below is already figured out as well:
do some other stuff
done
Я можу це добре виконати з командного рядка, вставивши фактичне число у послідовності `{1..n} '. Мені просто потрібно знати, чи можна включити змінну сюди і як це робити.
- Я спробував
export
це - Я спробував помістити саму змінну в фігурні дужки всередині послідовності:
{1..${numlines}}
- Я спробував скласти це в подвійних лапках, сподіваючись, що він розшириться:
{1.."$numlines"}
- Я спробував уникнути
$
:{1..\$numlines}
Чи потрібно мені використовувати set -[something]
команду, щоб ця змінна розширилася? Я навіть спробував деякі форми використання eval
... все безрезультатно.
Мені просто потрібно знати, чи є щось просте або незрозуміле, чого я пропускаю, або якщо це навіть можливо, перш ніж я витрачу більше часу на це.
Я міг би зібрати разом дійсно, дуже хакерський спосіб зробити це, щоб він працював у міру необхідності, але я хотів би уникнути цього, якщо це взагалі можливо, і навчитися правильному шляху робити це.