入力ファイルにさらに入力がある場合は、ループシェルスクリプト

入力ファイルにさらに入力がある場合は、ループシェルスクリプト

私はシェルスクリプトを持っており、Answers.txtファイルを介してスクリプトに答えを提供しました。

echo -n "Enter your name: "; read name
echo -n "Enter your number: "; read number
echo "Your name is $name and your number is $number"

回答.txt ファイル

Buvanesh
12345

私は以下を使ってこのスクリプトを実行します。script.sh < answers.txt

応答ファイルは動的であるため、ユーザーは応答ファイルに名前と番号を追加できます。

例えば

Buvanesh
12345
Kanna
45678

この場合、スクリプトを実行するには最初の2つの入力のみが必要です。シェルスクリプトのすべての入力を取得し、それに応じて出力を提供したいと思います。ループを実装する必要があるようですが、この場合はどのように実装するのか正確にはわかりません。誰でも助けることができますか?

ベストアンサー1

while IFS= read -r name && IFS= read -r number; do
   #IFS= read -r number || break
   printf 'Your name is %s and your number is %d\n' "$name" "$number"
done < answers.txt

あなたの思考プロセスは正しいです。条件がANDで接続されたコマンドであるloopループを導入する必要があります。whileread

おすすめ記事