中空の長方形の星のパターンを印刷するには? [コピー]

中空の長方形の星のパターンを印刷するには? [コピー]

中空の長方形の星のパターンを印刷したいが、予期しない結果が表示されます。

ここに画像の説明を入力してください。

rows=3
cols=5
       for ((i=1; i<=rows; i++))
         do 
            for ((j=1; j<=cols; j++))
             do
               if ((i==1 || i==rows) || (j==1 || j==cols))
                 then
                    echo "*"
                 else
                   echo " ";
               fi 
             done
            echo;
        done

答え1

2つの質問:

  1. echo各出力の後に改行文字を追加します。echo -nbash またはprintf
  2. 条件が合っていません。内部ブラケットを取り外す必要があります。

    if ((i==1 || i==rows || j==1 || j==cols))
    

答え2

次のようにしてみましたが、うまくいきました。

注文する

for i in {1..6}; do echo "*"; done| paste -s; for i in {1..4}; do echo "* *"| awk '{printf "%s%40s\n",$1,$2}'; done;for i in {1..6};do echo "*";done| paste -s


output

for i in {1..6}; do echo "*"; done| paste -s; for i in {1..4}; do echo "* *"| awk '{printf "%s%40s\n",$1,$2}'; done;for i in {1..6};do echo "*";done| paste -s

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

関連情報