속이 빈 직사각형 별 패턴을 인쇄하는 방법은 무엇입니까? [복사]

속이 빈 직사각형 별 패턴을 인쇄하는 방법은 무엇입니까? [복사]

속이 빈 직사각형 별 패턴을 인쇄하고 싶지만 예상치 못한 결과가 나타납니다.

여기에 이미지 설명을 입력하세요.

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

두 가지 질문:

  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

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

관련 정보