在shell脚本中读取用户输入

时间:2014-11-20 11:22:51

标签: python shell

在循环中,我正在阅读用户输入,如下所示:

#!/bin/bash
while read line; do
    echo $line
    python find_entity.py $line
    read -p "Enter your name : " choice
    echo $choice
done < "q0.txt"

但它仍然没有要求用户输入选择,而是写True并继续。这有什么不对?

2 个答案:

答案 0 :(得分:2)

以下内容不会涵盖所有可能的用例,但如果这个简单的解决方案适合您,请尝试

...
read -p "Enter your name : " choice < /dev/tty
...

会发生什么,指向你的是...... read从标准输入中读取,并且全局stdin重定向到文件q0.txt }

答案 1 :(得分:1)

你为什么不这样做:

for line in `cat q0.txt`
do
    echo $line
    python find_entity.py $line
    read -p "Enter your name : " choice
    echo $choice
done

您的代码不会要求任何输入,因为您将q0.txt的内容重定向到标准输入,而“read”语句从同一位置获取选择变量。