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

时间:2017-01-11 12:42:35

标签: bash variables syntax cygwin cp

构建Unity独立版本后,我想创建可执行文件及其数据文件夹的一些副本,因此我可以运行它的多个实例。为了方便起见,我制作了这个剧本:

SELECT p.*
FROM PRODUCTS p
WHERE category = 'SubInv' AND Atrribute1 = 'No'

但是,在复制可执行文件工作文件时,此文件夹复制不会。而不是将数据文件夹复制到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_Data等。它将第一个复制到SomeProject2_Data,将第一个复制到其中(下面只是覆盖第二个,似乎)。

我尝试插入SomeProject并复制“到”,但这也只是在第一次迭代中创建mkdir SomeProject$i_Data,并且在迭代后抱怨SomeProject已经存在。< / p>

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

1 个答案:

答案 0 :(得分: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