Ниже приведен некоторый псевдокод для того, что я пытаюсь выполнить:
#!/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
... все безрезультатно.
Мне просто нужно знать, есть ли что-то простое или неясное, что я пропускаю, или это вообще возможно, прежде чем я потрачу на это больше времени.
Я мог бы создать действительно очень по- хакерский способ сделать это так, чтобы он работал по мере необходимости, но я бы хотел этого избежать, если это вообще возможно, и научиться правильно делать это.