【问题标题】:How to skip a particular number when iterate over a range sequence number?遍历范围序列号时如何跳过特定数字?
【发布时间】:2011-01-12 14:05:43
【问题描述】:

我们说

for i in {1..9}
do
  if test $i -ne 8
  then 
    echo $i 
  fi
done

如果有办法跳过此序列{1..9} 中的数字 8 而无需进行比较?

PS: GNU bash,版本 3.00

【问题讨论】:

    标签: bash loops range seq


    【解决方案1】:

    该死的……自己想办法

    for i in {1..7} 9
    

    【讨论】:

      【解决方案2】:

      您可以放心地这样做:

      {1..N} {N+2..P}
      

      【讨论】:

      • 注意两组括号之间的空格。如果没有空间,此操作会执行其他操作。
      【解决方案3】:

      只需测试它是否是您不想要的值,然后继续,这只是完成此迭代并继续下一个迭代。

      if $test == 8{
          continue;
      }
      

      【讨论】:

      • 这样的测试是一种比较,作者希望避免这种情况。此外,您的 if 语句将因语法错误而失败,因为它不是有效的 shell 代码。
      猜你喜欢
      • 2021-01-10
      • 1970-01-01
      • 2021-04-08
      • 1970-01-01
      • 2017-10-31
      • 1970-01-01
      • 2022-01-19
      • 2019-03-07
      • 1970-01-01
      相关资源
      最近更新 更多