2016-11-01 28 views
-1

私は最終的にクイズを実装する短いスクリプトを作りたいと思います。標準入力でループを繰り返してみよう

私はという新しい行区切りのリストを含むstdinを読もうとしています。

私のプログラムは、これまで反復可能な任意のタイプのアレイへの入力を変換していないようです。この時点で、(私は期待していたとしても、まったく印刷された今、私はpbpaste | bash wordlearner.bash何も実行しない場合

read inputlines 
IFS=$'\n' read -rd '' -a y <<<"$inputlines" 

for line in "${lines[@]}" 
do 
    echo "$line" 
done 

)基本的に入力されたものの完全なecho

stdinを後でループする方法を教えてください。

+0

注:プログラムが実行されているときにユーザーからの入力を取る必要があるため、stdin自体をすぐにループすることはできません。 – theonlygusti

+0

このダウンロードはなぜですか?!?!?!真剣に私の内臓を嫌うボット/ユーザーがいますが、この質問では遠隔地でも何が間違っているのでしょうか? – theonlygusti

答えて

1

whileループを使用して、/dev/ttyを読み取る入力を求めますか?

while read -r line; do 
    echo "$line" 
    echo "What do you think?" 
    read -r answer < /dev/tty 
done 

配列にすべての行を丸呑みする代替使用mapfile

mapfile -t lines 
for line in "${lines[@]}"; do 
    echo "$line" 
done 
+0

私はすでに以前このソリューションを持っていましたが、ループの各繰り返しでユーザーからの入力を受けようとしているため、機能しませんでした。 – theonlygusti

+0

@andircそれを試してみます... – theonlygusti

+0

はい、本当にうまくいきます。ありがとう、 '/ dev/tty'について知らなかった – theonlygusti

関連する問題