Bash循环计划

时间:2011-10-07 21:02:49

标签: bash shell unix loops

无论如何,这不是一个功课,从我正在研究的这部分程序开始。我想要做的是使用bash循环打印这个形状。



********
  ****
   **

这是我到目前为止,它将打印形状,但我试图找到一种方式在echo语句上使用,所以例如,如果我把Var =“8”,然后将var减少2并将它们打印在同一行上。欢迎任何帮助,谢谢

 #!/bin/bash 
         COUNTER="1"
            until [  $COUNTER -lt 1 ]; do
echo  "**********"
echo  " ******** "
echo  "  ******  "
echo  "   ****   "
echo  "    **    "

              let COUNTER-=1
        done

1 个答案:

答案 0 :(得分:1)

您可以使用$((expr))表示法在bash中使用算术循环,就像在任何其他编程语言中一样。所以,写一个像

这样的函数
function printNx {
   N=$1
   X=$2
   count=0
   while $(($count++ < $N))
   do
      echo -n $X
   done
   echo ""
}

(在我检查之前不要依赖语法。我编写了大量的脚本语言,让他们感到困惑。)

<强>更新

几乎拥有它:

bash $ cat foo.bash
function printNx {
   N=$1
   X=$2
   count=0
   while [ $((count ++ )) -lt $N ]
   do
      echo -n "$X"
   done
   echo ""
}

printNx 5 '*'
bash $ bash foo.bash
*****
bash $