2

我试图使用进程生成器执行 shell 脚本。shell 脚本使用'read' shell 命令。但是当我检查 shell 脚本的输出流时,与“读取”命令相关的输入消息丢失了。shell脚本如下:

    #!/bin/bash
    # script.sh
    # This scripts has an input argument
    echo Hello World
    read -p "Enter something: " val1
    echo First Name: $val1
    read -p "Enter something: " val2
    echo Last Name: $val2
    echo $val1 $val2 invoked $1
    echo  $1 "completed successfully"

当我使用命令手动运行此脚本时

    ./script.sh install

终端上的输出如下:

    Hello World
    Enter something: albin
    First Name: albin
    Enter something: suresh
    Last Name: suresh
    albin suresh invoked install
    install completed successfully

但是当我使用进程构建器运行相同的命令时,输出中缺少“输入某些东西”命令。我得到的输出如下:

    Hello World
    First Name: albin
    Last Name: suresh
    albin suresh invoked install
    install completed successfully

为什么会发生这种情况以及这些“输入内容:”消息会流向哪个流?

4

1 回答 1

1

我试图用谷歌搜索 bashread命令并得到这个链接:http ://ss64.com/bash/read.html

-p prompt :在尝试读取任何输入之前显示提示,不带尾随换行符。仅当输入来自终端时才会显示提示。

显然,如果输入来自非终端,如您的示例提示所示,则不会显示。

于 2013-07-23T11:25:05.090 回答