2017-01-11 11 views
0

Unityスタンドアロンビルドをビルドした後、実行可能ファイルとデータフォルダの両方のコピーを作成したいので、複数のインスタンスを実行できます。簡単にこれを行うために、私はこのスクリプトを作りました:実行可能ファイルのコピーがファイルに動作しながらディレクトリ名の変数を持つCygwinのコピーまたはmkdirが機能しないのはなぜですか?

for i in 1 2 3 4 
    do cp SomeProject.exe SomeProject$i.exe 
    cp -r SomeProject_Data/ SomeProject$i_Data 
    echo i=$i done 
done 

しかし、このフォルダのコピーはしていません。データフォルダをSomeProject1_DataSomeProject2_Dataなどにコピーするのではなく、最初のファイルをSomeProjectにコピーし、次のファイルをそのファイルに上書きします(次のファイルは上書きされます)。

私はその「に」mkdir SomeProject$i_Dataやコピーを挿入しようとしたが、これはまた、単に最初の反復でSomeProjectを作成し、次の反復がSomeProjectがすでに存在していることを訴えます。

何が起こっているのか/間違っているのか?

答えて

1

私はちょうど自分でそれを働いたと思う。変数のiの周りに{}が必要です。 私のコードで$i_Dataは何も/空の文字列に解決される変数名と見なされます。 iの周りに{}を追加すると、正しく解決されます。だから、作業コードは:

for i in 1 2 3 4 
    do cp SomeProject.exe SomeProject$i.exe 
    cp -r SomeProject_Data/ SomeProject${i}_Data 
    echo i=$i done 
done 
+0

です。私の答えは二重引用符です。 – Inian

+1

いいえ、二重引用符は機能しません。問題は、変数名として "i_Data"が "i"ではなく、{}を必要としていることです。適切な答えを書くだろう:) –

+0

私は全体の質問を削除する必要があるかどうかを考えて...それは他の誰にも便利だと思いますか? :) –

関連する問題