Ich verwende dieses Skript, um virtuelle Maschinen in meinem ESXI 6.5 zu kopieren. Das erste Argument des Skripts ist der Name des zu kopierenden Verzeichnisses.Bash für Schleife Ende Bedingung als Skript-Argument
Ich möchte ein zweites Argument haben, das wäre die Anzahl der Vms, die ich kopieren möchte. Für jetzt muss ich die for-Schleife jedes Mal ändern, wenn ich verschiedene Anzahl von vms kopieren möchte. Das folgende Skript erstellt 20 vms, indem es das Verzeichnis eines VMs kopiert, das als erstes Skriptargument angegeben wurde. Ich laufe es so: ./copy.sh CentOS1
aber möchte so etwas haben: ./copy.sh CentOS1 x
wo x ist die Endbedingung in meiner for-Schleife.
#!/bin/sh
for i in $(seq 1 1 20)
do
mkdir ./$1_$i/
cp $1/* $1_$i/
echo "Copying machine '$1_$i' ... DONE!"
done
HINWEIS: Bitte machen Sie nicht andere Lösungen, wie sie gegeben, zum Beispiel hier: https://www.cyberciti.biz/faq/bash-for-loop/, weil ich sie überprüft und sie funktionierte nicht.
Danke.
Sie meinen '$ (seq 1 1 $ 2)'? oder Sie könnten sogar einen Standardwert als $ (seq 1 1 $ {2: -20}) angeben. – ewcz
Keine Sorge; Die Verbindung, die Sie zur Verfügung stellen, ist voller schrecklicher Ratschläge und Beispiele. – chepner