2009-11-08 73 views
34

我想写一个简单的bash脚本来充当可执行文件的包装。如何将脚本收到的所有参数传递给可执行文件?我试图将bash脚本参数传递给子进程不变

/the/exe [email protected] 

但这不加引号的参数,例如工作。

./myscript "one big parameter" 

运行

/the/exe one big parameter 

这是不一样的东西。

回答

49

当一个shell脚本环绕一个可执行文件,如果你不想执行完成后,做任何事情(这对包装脚本一个共同的情况下,在我的经验),调用可执行程序的正确方法是:

exec /the/exe "[email protected]" 

exec内置告诉shell只是把控制权交给可执行没有分叉。

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

这也意味着在exec命令后没有命令可以执行。

+0

优秀,不知道 - 谢谢! – EMP 2009-11-08 22:34:34