ユーザー入力に応じてテキストを繰り返したいです。

ユーザー入力に応じてテキストを繰り返したいです。

私をパニックにさせる質問があります。というファイルがありますfilex.txt

$ cat filex.txt
I love my India.

ユーザーからの入力を受けて何度も印刷したい。以下に、テキストを30回自動的に繰り返して別のテキストファイルに入れる例を示します。

echo "Number of times you want to repeat:"
read repeat # for example user entered 30
cat link_no_follow.txt | perl -ne 'for$i(0..$repeat){print}' >filex2.txt

$repeatユーザー入力を保存するために変数を使用します。しかし、これはうまくいきません。誰かが私に解決策を与えることができますか?

ベストアンサー1

perl実際にforループを使用する必要はなく、bashディレクトリを使用できます。次の例を考えてみましょう。

#!/bin/bash

content="$(cat filex.txt)"

echo -n "Number of times you want to repeat: "
read repeat

for ((i = 0; i < repeat; ++i)); do
    echo "${content}"
done

スクリプトは最初にその内容をfilex.txt名前付き変数として読み込みますcontent。その後、繰り返し回数を求めるプロンプトが表示され、それをユーザーから変数として読み込みますrepeat

次に、forループを使用してcontent repeat数を印刷します。ループの構造はfor次のとおりです。

for ((init; condition; update))

このinit部分はループの開始時に一度実行され、その部分がcondition評価されます。 true の場合、ループが実行されます。ループが完了したら、そのupdate部分を実行します。以下は状況を再評価することです。条件が偽になるまで続きます。 ++iうん、短縮i = i + 1

私が取得するスクリプトを実行すると、次のようになります。

$ ./ex.sh
Number of times you want to repeat: 3
I love my India.
I love my India.
I love my India.

おすすめ記事