ユーザーから変数を取得し、次のようなピラミッドを印刷するスクリプトを作成しようとしています。
*
**
***
****
*****
このスクリプトを使用しましたが、数値が表示されます。
for i in {1..5}
do
a=${a}${i}
echo ${a}
done
出力:
1
12
123
1234
12345
数字の代わりに「*」記号を挿入するには?
ベストアンサー1
ループカウンタの代わりに変数に*
文字を追加するだけです。a
for i in {1..5}
do
a+='*'
echo "${a}"
done
a="${a}*"
代替もうまく機能しますが、このバージョンはよりきれいで明確であるとa+='*'
思います。+=
whileループを使用してこれを行うには、次のようにします。
while (( "${#a}" < 5 )); do
a+='*'
echo "$a"
done
${#a}
変数の文字列の長さに拡張されますa
。
上記のコードスニペット(および質問のコード)は、スライスの先頭a
でvarが空または設定されていないと仮定します。そうでない場合は、最初に再初期化する必要があります。
a=
私はあなたがbashシェルを使用していると仮定します。 これは完全なマニュアルです。 ここにいるループ構造について。