为什么我的 Cygwin 副本或目录名称中带有变量的 mkdir 不起作用



构建 Unity 独立构建后,我想创建可执行文件及其数据文件夹的一些副本,以便我可以运行它的多个实例。为了轻松做到这一点,我制作了这个脚本:

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已经存在。

知道发生了什么/错误吗?

我想我只是自己解决的。我需要变量中的 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

最新更新