として与えられた私は、私のESXI 6.5で仮想マシンをコピーするには、このスクリプトを使用しています。スクリプトの最初の引数は、コピーするディレクトリの名前です。バッシュは、スクリプト引数
2番目の引数は、コピーしたいvmsの数です。今のところ、異なる数のvmsをコピーするたびに、forループを変更する必要があります。以下のスクリプトは、最初のスクリプト引数として与えられたvmのディレクトリをコピーすることによって20のvmsを作成します。私はこれを次のように実行します:./copy.sh CentOS1
しかし、このようなものがあります:./copy.sh CentOS1 x
ここで、xは私のforループの終了条件です。
#!/bin/sh
for i in $(seq 1 1 20)
do
mkdir ./$1_$i/
cp $1/* $1_$i/
echo "Copying machine '$1_$i' ... DONE!"
done
注:ここで、例えば与えられたもの、のように、解決策のために他を提案しないでください。https://www.cyberciti.biz/faq/bash-for-loop/を私はそれらをチェックして、彼らは動作しませんでしたので。
ありがとうございました。逆に、あなたの抗議にもかかわらず
あなたは '$(seq 1 1 $ 2)'を意味しますか? '$(seq 1 1 $ {2:-20})'としてデフォルト値を指定することもできます。 – ewcz
心配はいりません。あなたが提供するリンクはひどいアドバイスや例がいっぱいです。構文エラー: – chepner