2016-11-25 15 views
0

私の目的は、num=6などの値に基づいて、文字をエコーすることです(#など)。画面上に#を6回印刷する必要があります。可変値に基づくエコー文字

これを取得する方法がわかりません。

+0

あなたが何をしようとしなかったような何かを行うことができますか?あなたが見ている類似の質問はたくさんありますか? – Inian

+1

[bashで繰り返し文字を印刷する]の複製があります(http://stackoverflow.com/questions/5799303/print-a-character-repeatedly-in-bash) –

+1

[bashで文字を繰り返すにはどうすればよいですか?](http://stackoverflow.com/questions/5349718/how-can-i-repeat-a-character-in-bash) – fuglede

答えて

1

あなたは

printf '#%.0s' {1..6} 

または、より一般的なケースでは、

printf '#%.0s' $(seq 1 $num) 
+0

'{1..6}'はkshでは動作しません。 – ceving

+0

@ceving which [tag:ksh]?正規のAT&T ksh 'Version AJM 93u + 2012-08-01' –

+0

@HenkLangeveldあなたが引用したバージョンで動作するかもしれませんが、KornShellを使用する主な理由は古いUnixシステムでも動作するスクリプトを書くことです。 Bashの機能を充実させたksh構文を使用すると、KornShellを使うのはほとんど役に立たない移植性の利点を放棄します。 Solaris 10の 'ksh'は' {1..6} 'をサポートしていません。 – ceving

0
printf "%*s" "$num" " " | tr " " "#" 

または

yes '#' | head -"$num" | tr -d "\n"