文字列を複数回印刷

文字列を複数回印刷

文字列と数値の2つのパラメータを使用するスクリプトを作成したいと思います。このスクリプトは、アスタリスクで丸められた文字列をn回印刷します。だから前の場合。script "Hello World!" 3以下を印刷します。

**************
*Hello World!*
*Hello World!*
*Hello World!*
**************

どうすればいいですか?

ベストアンサー1

*文字列の長さを入力の長さと同じにするために使用できますsed。非常に簡単に繰り返すこともできます。各ラインの出力は次のようになります。

*$stars*
*$input*
...repeated...
*$stars*

*したがって、必要な文字列を配置する単純な「出力」関数を作成できます。

#!/bin/bash

string=$1
count=$2

stars=$(echo "$string" | sed 's/./*/g')

output() { printf "*%s*\n" "$1"; }

output "$stars"
for ((a=0;a<$count;a++))
{
  output "$string"
}
output "$stars"

例えば

./x "Hello world!" 3
**************
*Hello world!*
*Hello world!*
*Hello world!*
**************

おすすめ記事