等待输入任何键在while循环中不起作用

时间:2016-02-22 22:15:33

标签: shell while-loop scripting

我正在使用读取-p"按任意键继续"在我的脚本中。 这工作正常,除非它在像

这样的while循环中
while read TEST_NAME  ; do
    read -p "Press any key..."
    echo "Executing:"
done <$MT_TEST_ROOT_DIR/automation.mts

我怀疑这是因为封闭while循环执行读取。那么它的解决方案是什么呢?

2 个答案:

答案 0 :(得分:1)

问题确实是封闭的重定向。您可以通过以下方式简单地重定向来自read(您的键盘)的内部/dev/tty输入:

while read TEST_NAME  ; do
    read -p "Press any key..." < /dev/tty
    echo "Executing:"
done <$MT_TEST_ROOT_DIR/automation.mts

答案 1 :(得分:0)

两个read都从同一输入文件中读取。对第一次读取使用不同的文件描述符,让第二个read继承脚本正在使用的任何内容。

while read TEST_NAME <&3  ; do
    read -p "Press any key..."
    echo "Executing:"
done 3< "$MT_TEST_ROOT_DIR"/automation.mts