需要用户输入的管道shell脚本不打印其输出

时间:2018-04-03 10:38:35

标签: python django

我正在通过Python中的管道执行shell脚本,如下所示:

def(request,self):
    args_str1 = "flexiserver/build/svnenv.sh -j 'svntasktag.pl ss_fvnteste'"
    args1 = shlex.split(args_str1)
    pi = subprocess.Popen(args1, stdout=subprocess.PIPE)

    print("***** Before out err *****")
    out, err = pi.communicate()
    print(" OUT is %s " , out)

    context = {'out':out, 'err':err}
    req_context = RequestContext(request)
    return render_to_response(
        'pai_app/create_tag.html', context, context_instance=req_context)

此脚本正在等待用户输入,例如' i',' m'' c'喜欢争论。在用户提供任何输入之前,它不会打印而不会显示在webui中。

我的问题是,有没有可能在webui本身运行这样的Perl或shell脚本?或者针对上述问题还有其他解决方案吗?我很震惊,可以帮助我。

1 个答案:

答案 0 :(得分:0)

虽然你的Python代码正在打开一个shell脚本的管道,这个脚本看起来像是一个Perl脚本的参数,但这个问题实际上与Python中的管道有关。

  

此脚本正在等待用户输入,如'i','m','c',如参数。

您可以使用pi.communicate('i')向流程发送“i”。