代码之家  ›  专栏  ›  技术社区  ›  Christopher Tokar

在Python shell脚本中使用时,将Maven的Python输出“管道”到屏幕的正确方法是什么?

  •  0
  • Christopher Tokar  · 技术社区  · 17 年前

    我的Python实用程序脚本包含UNIX系统调用,例如

    status, output = commands.getstatusoutput("ls -ltr")
    print "Output: ", output
    print "Status: ", status
    

    它工作正常,并将输出打印到控制台,但一旦我从同一脚本运行Maven,

    status, output = commands.getstatusoutput("mvn clean install -s./../../foo/bar/settings.xml -Dportal -Dmain.dir=${PWD}/../.. -o")
    print "Output: ", output
    print "Status: ", status
    

    输出不像之前的常规系统命令那样被读出。如果我只是从命令行执行引号中的Maven命令,它就可以正常工作。将Maven的输出传输到屏幕的正确方法是什么?

    1 回复  |  直到 17 年前
        1
  •  0
  •   eduffy    17 年前

    ${PWD} 是否得到了适当的扩展?如果没有,请尝试:

    status, output = commands.getstatusoutput("mvn clean install -s./../../foo/bar/settings.xml -Dportal -Dmain.dir=%s/../.. -o" % os.getcwd ())