代码之家  ›  专栏  ›  技术社区  ›  WestCoastProjects

运行bash for循环零次[重复]

  •  0
  • WestCoastProjects  · 技术社区  · 2 年前

    对于c风格的语言 for 以下循环执行零次:

    for (int myvar = 0; myvar <= -3; myvar++) {
       printf("hi")
    }
    

    bash 而是按-1执行四次循环

    for j in {0..-3}; do echo 'hi'; done
    
    hi
    hi
    hi
    hi
    

    以下命令将执行一次

    for j in {1..4..0}; do echo 'hi'; done
    
    hi
    

    那么,如何避免执行循环时没有对整个过程进行注释呢?我想通过循环索引中的变量来控制它:

    first=0
    last=-3
    step=1
    for j in {$first..$last..$step}; do echo 'hi'; done
    
    hi
    
    1 回复  |  直到 2 年前
        1
  •  3
  •   pjh    2 年前
    for ((j=0; j<=-3; j++)); do
        echo hi
    done
    
    for ((j=first; j<=last; j+=step)); do
        echo hi
    done