将bash脚本参数传递给子进程不变

问题描述:

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

/the/exe [email protected] 

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

./myscript "one big parameter" 

运行

/the/exe one big parameter 

这是不一样的东西。

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

exec /the/exe "[email protected]" 

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

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

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

+0

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

你必须把[email protected]引号:

/the/exe "[email protected]" 
+0

太好了,谢谢!我认为这将把所有参数放在一组引号中,但它能正常工作。 – EMP 2009-11-08 09:11:30