Unten ist eine Art Pseudocode für das, was ich erreichen möchte:
#!/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
Ich kann es gut über die Befehlszeile ausführen, indem ich die tatsächliche Nummer in die Sequenz "{1..n}" einfüge. Ich muss nur wissen, ob es möglich ist, hier eine Variable einzufügen, und wie es geht.
- Ich habe versucht ,
export
es ing - Ich habe versucht, die Variable selbst in geschweifte Klammern innerhalb der Sequenz zu setzen:
{1..${numlines}}
- Ich habe versucht, es in doppelte Anführungszeichen zu setzen, in der Hoffnung, dass es sich erweitern würde:
{1.."$numlines"}
- Ich habe versucht, dem zu entkommen
$
:{1..\$numlines}
Muss ich einen set -[something]
Befehl verwenden, damit diese Variable erweitert wird? Ich habe sogar einige Formen der Verwendung ausprobiert eval
... alles ohne Erfolg.
Ich muss nur wissen, ob mir etwas Einfaches oder Dunkles fehlt oder ob dies überhaupt möglich ist, bevor ich mehr Zeit damit vergeude.
Ich könnte eine wirklich, wirklich hackige Art und Weise zusammenstellen, damit es nach Bedarf funktioniert, aber ich würde das gerne vermeiden, wenn es überhaupt möglich ist, und lernen, wie man es richtig macht.