숫자를 가로로 인쇄하는 방법은 무엇입니까? [복사]

숫자를 가로로 인쇄하는 방법은 무엇입니까? [복사]

5,4,3,2,1을 인쇄하고 싶습니다.

이것은 내 프로그램이지만 숫자를 세로로 인쇄합니다.

numbers=5
i=1
while [ "$i" -le "$numbers" ]
do
echo “$i”
i=$(( $i + 1 ))
done

나를 도와줄 해결책이 있나요?

답변1

이를 수행하는 방법에는 여러 가지가 있습니다. 다음은 몇 가지입니다.

  1. 사용seq@Gnouc가 제안한대로.

  2. 중괄호 확장을 사용하고 공백을 쉼표로 변환합니다.

    $ echo {5..1} | sed 's/ /,/g' 
    5,4,3,2,1
    
  3. 스크립트를 사용하되 카운터를 증가시키는 대신 감소시키도록 변경하고 다음 echo으로 변경하십시오 echo -n(이것은 bash의 내장에서는 작동 echo하지만 모든 echo구현에서는 작동하지 않습니다).

    i=5
    while [ "$i" -gt 1 ]
    do
        echo -n "$i,"
        let i--
    done
    echo "$i"    
    
  4. 대신 사용하십시오 printf:

    i=5
    while [ "$i" -gt 1 ]
    do
        printf "%s," "$i"
        let i--
    done
    printf "%s\n" "$i"    
    
  5. 변수 사용:

    i=5
    v=5
    while [ "$i" -gt 1 ]
    do
        let i--;
        v=$v,$i
    done
    echo $v
    

답변2

를 사용하면 seq다음을 수행할 수 있습니다.

$ seq -s, 5 -1 1
5,4,3,2,1

그리고 perl솔루션은 이식 가능합니다.

$ perl -e 'print join ",", reverse 1..5'

관련 정보