避免在继承输入源的bash中嵌套循环?
我有以下代码:避免在继承输入源的bash中嵌套循环?,bash,Bash,我有以下代码: while read LINE; do if [[ "$LINE" == "ask" ]]; then read USR_RESPONSE fi done < a.txt 读行时;做 如果[[“$LINE”==“ask”];然后 读取USR_响应 fi 完成
while read LINE; do
if [[ "$LINE" == "ask" ]]; then
read USR_RESPONSE
fi
done < a.txt
读行时;做
如果[[“$LINE”==“ask”];然后
读取USR_响应
fi
完成
但无法理解如何从stdin进行内部读取。我尝试了以下几种组合:
while read LINE; do
if [[ "$LINE" == "ask" ]]; then
read USR_RESPONSE (<0) (<&0)
fi
done (< a.txt) (3<a.txt)
读行时;做
如果[[“$LINE”==“ask”];然后
阅读USR_响应(尝试以下操作:
while read -u 10 LINE; do
if [[ "$LINE" == "ask" ]]; then
read USR_RESPONSE
fi
done 10< a.txt
读取时-u10行;执行
如果[[“$LINE”==“ask”];则
读取USR_响应
fi
完成10次
试试这个:
while read -u 10 LINE; do
if [[ "$LINE" == "ask" ]]; then
read USR_RESPONSE
fi
done 10< a.txt
读取时-u10行;执行
如果[[“$LINE”==“ask”];则
读取USR_响应
fi
完成10次
我发现read-u
是不可移植的,所以我倾向于推荐例如read LINE@GordonDavisson。但由于这是一个bash
标记的问题,我想把它作为答案是可以的,即使不是可移植的。无论如何,你的选择是一个好的选择。我发现read-u
Isn不可移植,因此我倾向于推荐,例如,read LINE@GordonDavisson,确实如此。但由于这是一个bash
标记的问题,我想把它作为答案是可以的,即使不是可移植的。无论如何,你的选择是一个好的选择。