erstellen mehrerer Kopien einer Datei in bash ein script
Bin ich angefangen zu lernen, wie man die bash-shell-Befehle und scripting im Linux.
Ich möchte ein Skript erstellen, der eine source-Datei, und erstellen Sie eine bestimmte Anzahl von Namen kopiert.
zum Beispiel, ich habe die Quelle als Textdatei, und ich wählen, 15 Exemplare, so schafft es testFile1, 2, 3 ... 14, 15 in der gleichen Lage.
Zu versuchen und zu erreichen, habe ich versucht zu machen, den folgenden Befehl ein:
for LABEL in {$X..$Y}; do cp $INPUT $INPUT$LABEL; done
Jedoch anstelle der Erstellung von Dateien von X nach Y, es lässt sich nur eine Datei mit (beispielsweise) {1..5} angehängt statt-Dateien 1, 2, 3, 4 und 5
Wie kann ich es ändern, damit es richtig verwendet, wird die variable als Anzahl für die Schleife?
- Verwandte, wenn auch nicht ganz doppelte... stackoverflow.com/questions/14990185/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den brace expansion Mechanismus ist ein bisschen beschränkt; es funktioniert nicht mit Variablen, die nur Literale.
Für das, was Sie wollen, haben Sie wahrscheinlich die
seq
Befehl ein, und schreiben konnte:()
); Sie erste code zeigt{}
Klammern. Sie zeigen nicht, wie$INPUT
gesetzt wurde, so konnte ich nicht einstellen, aber die Fehlermeldungen bedeuten, dass Sie Ihrecp
Befehl ist zu sehen, nur die Anzahl, was wiederum bedeutet, dass$INPUT
ist nicht festgelegt. Sie müssen hinzufügen, dass an Ihrem code. Es wäre auch eine gute Idee, schließen Sie den Dateinamen in doppelte Anführungszeichen. Es sollte keine Rolle spielen, da Sie vermutlich nicht haben, Leerzeichen etc. im Namen, aber es ist wohl einfach besser, sicher zu sein als traurig.Mit einem C-style for-Schleife :
for i in {a..z}; do ...
cd /path/to/dir/where/file_is