while循环显示错误

时间:2016-01-29 16:19:07

标签: shell

此脚本以这种方式打印数字,但在脚本中显示错误但无法解码错误。

   #!/bin/bash
    x=0
     while [ $x -lt 10 ]
      do
       y=$x
       while [ $y -ge 0 ]
       do
            echo "$y \c"
            y=$(($y-1))
      done      #showing done error
       echo      
     x=$(($x+1))
 done          #showing done error

1 个答案:

答案 0 :(得分:-1)

你的脚本很好,但你应该避免使用shell进行这种复杂的处理,因为它们非常慢。

据我所知,你的剧本可能是一个学习练习,但对于 未来,将复杂的处理方法委托给子程序(例如过滤器),并将shell的使用范围缩小到编写程序工作流程,以简单的方式组装特定的复杂元素,这是good habit

以下是我对AWK的看法:

awk 'BEGIN{
  for(i = 0; i < 10; ++i){
    for(j = i; j>=0; j--){
      printf("%d%s", j, (j > 0 ? " " : "\n"));
    }
  };
  exit
}'

在这里,您可以使用您喜欢的脚本语言,例如Python或Perl,而不是AWK。