数字を水平に印刷するには? [コピー]

数字を水平に印刷するには? [コピー]

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
    

おすすめ記事