使用unix打印*的正方形

时间:2013-11-24 13:49:07

标签: bash unix sh

首先,对不起,如果我的英语不是很好,但它不是我的主要语言。

我自学习在Unix上编写脚本,我正在尝试制作一个要求编号的脚本,然后打印一个X数字的正方形,例如:

¿方块的大小? 4

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

但我不能每行打印超过一个“*”。

这是我现在的代码:

echo "Size of the square?"
    read size

clear

for (( i=0;i<size;i++ ))            
do
    echo "*"
done

我试图让它工作,尝试使用2 for循环,但我不能让它工作。

非常感谢任何帮助。提前谢谢!

2 个答案:

答案 0 :(得分:1)

echo在最后打印一个新行,改为使用printf

#!/usr/bin/env bash

echo "Size of the square?"
    read size

clear

for (( i=0; i<$size; i++ )); do
    for (( j=0; j<$size; j++ )); do
        printf "*"
    done
    printf "\n"
done

答案 1 :(得分:1)

你也可以试试这个

  1. size 4
  2. 它会显示

    {****
    *  *
    *  *
    ****}
    

    echo "enter the sizeof the square"
    read size
    clear
    for (( i = 1; i <= size; i++ )); do
        for (( j = 1; j <= size; j++ )); do
    
            if [ "$i" == 1 ] || [ "$i" == "$size" ] || [ "$j" == 1 ] || [ "$j" == "$size" ]
             then
                #statements
                tput cup $i $j
                echo "*"
            fi
         done
    done