While循环执行时间比预期多1

时间:2019-04-28 19:12:52

标签: variables makefile while-loop

Make对象内部的循环执行时间比预期时间多1。

我在我的make对象中使用while循环来检查一些文件。我需要运行3次,但是在没有设置while索引的情况下,它在第一个循环中运行了4次。

check_diag_results:
    @echo "Checking Diagnostic Test Results ..."
    @number = 1; \
    while [[ $$number -le 3 ]]; do \
        if grep -q 'Test PASSED' "$(RESULTS)/diagnostics_rtl_tc$$number.txt"; then \
            echo "Testcase $$number Passed"; \
        else \
            echo "Testcase $$number Failed"; \
        fi; \
    (( number = $$number + 1 )); \
    done
    @echo "... Done"

这是结果:

Checking Diagnostic Test Results ...
/usr/bin/sh: number: command not found
grep: ./results/diagnostics_rtl_tc.txt: No such file or directory
Testcase  Failed
Testcase 1 Passed
Testcase 2 Passed
Testcase 3 Failed
... Done

如您所见,即使第一次将数字设置在while之上,也没有定义。

1 个答案:

答案 0 :(得分:0)

尝试将“数字”初始值设定项更改为不带有“ @”字符的数字,如下所示:

之前:@number = 1; \

之后:number = 1; \