代码之家  ›  专栏  ›  技术社区  ›  EMP

将bash脚本参数传递给未更改的子进程

  •  43
  • EMP  · 技术社区  · 15 年前

    我想编写一个简单的bash脚本,作为可执行文件的包装器。如何将脚本接收的所有参数传递给可执行文件?我试过了

    /the/exe $@
    

    但这不适用于引用的参数,例如。

    ./myscript "one big parameter"
    

    /the/exe one big parameter
    

    这不是同一件事。

    2 回复  |  直到 15 年前
        1
  •  62
  •   ddaa    15 年前

    当shell脚本环绕可执行文件时,如果您不想在可执行文件完成后做任何事情(在我的经验中,这是包装脚本的常见情况),调用可执行文件的正确方法是:

    exec /the/exe "$@"
    

    这个 exec 内置的命令shell只对可执行文件进行控制,而不进行分叉。

    实际上,这可以防止无用的shell进程在系统中挂起,直到被包装的进程终止。

    这也意味着在 执行程序 命令。

        2
  •  14
  •   sth Alien    15 年前

    你必须把 $@ 引文:

    /the/exe "$@"