5,4,3,2,1を印刷したいです。
これは私のプログラムですが、数字を縦に印刷します。
numbers=5
i=1
while [ "$i" -le "$numbers" ]
do
echo “$i”
i=$(( $i + 1 ))
done
私を助ける解決策がありますか?
ベストアンサー1
これを行う方法はいくつかあります。以下はいくつかあります。
使用
seq
@Gnoucが提案したように。中かっこ拡張を使用し、スペースをコンマに変換します。
$ echo {5..1} | sed 's/ /,/g' 5,4,3,2,1
スクリプトを使用しますが、カウンタを増やす代わりに減らすように変更し、次に
echo
変更しますecho -n
(これはbashの組み込みでは機能しますecho
が、すべてのecho
実装では機能しません)。i=5 while [ "$i" -gt 1 ] do echo -n "$i," let i-- done echo "$i"
代わりに使用してください
printf
:i=5 while [ "$i" -gt 1 ] do printf "%s," "$i" let i-- done printf "%s\n" "$i"
変数の使用:
i=5 v=5 while [ "$i" -gt 1 ] do let i--; v=$v,$i done echo $v