【问题标题】:Calling a shell script from a Groovy/Grails Application从 Groovy/Grails 应用程序调用 shell 脚本
【发布时间】:2009-10-02 08:24:28
【问题描述】:

如何从 Groovy / Grails 应用程序调用本机 shell 脚本?

shell 脚本驻留在同一台机器上。

【问题讨论】:

    标签: grails groovy


    【解决方案1】:

    将名称(最好是绝对路径)和参数放在一个列表中并调用execute()

    ['/path/to/script', 'arg1', 'arg2'].execute()
    

    Groovy documentation 建议改用简单的字符串。我不建议这样做,因为它可能会导致特殊字符、参数中的空格等各种问题。

    【讨论】:

    • 仅供参考。该链接已损坏。
    • 我在 groovy 脚本的 On-choice 级联参数中尝试了这种语法,但它不起作用 ['/home/path/to/shell/script', 'arg1'].execute()
    • @Triangle:它对我有用。我建议查看错误消息。而且你的脚本是可执行的,对吧?
    • 感谢亚伦的关心。它像这样对我有用:-“sh /home/path/to/script.sh arg”.execute()。如果参数保存在某个变量“str”中,那么“sh /home/path/to/script.sh ${str}”.execute()。是的,我的脚本是可执行的。
    • @Triangle:如果您的示例有效,那么['sh', '/home/path/to/script.sh', str].execute() 也必须有效。此外,当str 包含特殊字符时也可以使用。如果脚本确实是可执行的,那么脚本的第一行在某种程度上是错误的。这就是最初的 sh 修复的问题。
    【解决方案2】:

    您可以使用 Groosh 模块 (link)

    【讨论】:

    • 很好 - 我正是在寻找这个!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-04
    • 2011-09-27
    相关资源
    最近更新 更多