在 Makefile 中的嵌套循环中使用 Bash 命令

在 Makefile 中的嵌套循环中使用 Bash 命令

我想在 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 命令时,问题似乎已解决。

相关内容