回答:
内部の読み取りコマンドでstdinを使用し、whileループに別のファイル記述子を使用する
while read -u 3 line; do
read -p "get some input from the user" response
done 3< some_file.txt
ニフレはそれを正確に持っています。ただし、複数の端末を使用している場合は、具体的に指定する必要があります。
グーグルから来たあなたのために、このページを見つけるおめでとうございます。あなたは(これは含むが読み取りループ中に任意のユーザ入力を行う必要がある場合rm -i
、read
または何か他のもの)は、使用する入力パイプを指定することができます。
これが私が使用したこのソリューションの断片です:
#in declarations
thistty=$(tty)
lsuser -R LDAP -a home pgrp ALL 2>/dev/null | while read line
do
homedir=$(echo $homedir | awk -F= '{print $2}')
sudo rm -ir "$homedir" < $thistty
done
ありがとうNifle!また、bgStackにも感謝します。時間を検索した後、私はようやく答えを得ました!偉大な者!!「echo $(tty)」を使用して端末パスを検出したか、変数として取得しただけです。私にとっては別のユースケースでした。Uはファイルを読み取っていて、実行を確認したいと考えています。たぶん、以下の例は誰か他の人を助けるでしょう。
#!/bin/bash
export terminal=$(tty)
cat file | while read val1 val2
do
while true;
do
read -p "would you like to XYZ" yn
case $yn in
[Yy]* ) echo "# Move $val1 to $val2 #";break;;
[Nn]* ) echo "#---------no action----------#";break;;
* ) echo "# Please answer yes or no. #";;
esac
done < $terminal
done
while
、パイプから読み取りを行っていました...そして、リダイレクトを使用してstdin:から読み取りましたread something < %terminal
。