将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
命令后没有命令可以执行。
答
你必须把[email protected]
引号:
/the/exe "[email protected]"
+0
太好了,谢谢!我认为这将把所有参数放在一组引号中,但它能正常工作。 – EMP 2009-11-08 09:11:30
优秀,不知道 - 谢谢! – EMP 2009-11-08 22:34:34