Das komplette Skript darf ich leider nicht posten, von daher nehme ich nur Ausschnitte die relevant sind.
Ich starte das Skript; es fragt mich eine Anzahl ab (nehmen wir als Beispiel 3); dann kommt 3 mal hintereieinander eine Eingabeaufforderung wo ich jeweiles Zeilen angeben muss; bei jeder Anforderung für eine Eingabe gebe ich eine Zeilenangabe an (zum Beispiel: 1, 3-5, 7); dann werden vom Skript die Zeilen 1, 3, 4, 5 und 7 auskommentiert also vor jede Zeile ein ## gesetzt. In der Datei wo die Zeilen auskommentiert werden sollen gibt es zwischen den Zeilen Leerzeilen die nur ein ## oder ein ### enthalten.
Sprich vorher:
texttexttexttexttexttext
texttexttexttexttexttext
###
texttexttexttexttexttext
texttexttexttexttexttext
##
texttexttexttexttexttext
Sprich nachher:
##texttexttexttexttexttext
texttexttexttexttexttext
##### ⇒ dabei soll diese Zeile die vorher ### und jetzt ##### heißt übersprungen werden
##texttexttexttexttexttext
##texttexttexttexttexttext
##
##texttexttexttexttexttext
while [ $zahl1 != $zahl2 ]
do
sed -i -e "$zahl1 s/^/##/" $dateiname
((zahl1 = $zahl1 + 1))
done
Zahl1 wäre jetzt die Zahl 3 und Zahl2 wäre die Zahl 5. Also kommentiert diese Schleife Zeile 3-5 aus.
Verständlich erklärt?
Nun soll er aber nicht die Zeile 3 auskommentieren sondern überspringen weil diese Zeile ja bereits auskommentiert ist.
Ich weiß nicht wie ich besser erklären soll...