我想在 makefile 的嵌套循环中使用 bash 命令,我当前的代码不起作用。有人能告诉我问题出在哪里吗?我在测试目标中写了一个简单的代码。在这里,我想转到目录 DIR_S/case1 并将 rtt.csv 文件复制到另一个目录 DIR_D/rtt/ 目录中。
test:
cn=1; while [[ $$cn -le 2 ]] ; do \
echo $$cn ; \
((cd $(DIR_S)/case\ $$cn)) ; \
((cp rtt.csv $(DIR_D)/rtt/)) ; \
((cn = cn + 1)) ; \
done
我运行这个程序时没有错误,但我看到此消息并且该行未执行
/bin/sh: ((: cd /Users/Umar/Desktop/dummy1/case 1: division by 0 (error token is "/Umar/Desktop/dummy1/case 1")
我注意到的一件事是,如果输入
cd /Users/Umar/Desktop/dummy1/case 1
在命令行上,由于空间不足,它将无法工作,我还更新了上面的行
((cd $(DIR_S)/case\ $$cn)) ; \
到
((cd $(DIR_S)/case\\ $$cn)) ; \
但这一行仍然没有执行。有人能指导我如何在 Makefile 中的嵌套循环中使用 bash 命令吗?(我提到嵌套循环是因为我打算在这个循环之后添加另一个循环)
答案1
当我使用不带 (( 和 )) 的 bash 命令时,问题似乎已解决。