有没有一种方法可以从Shell脚本执行应用程序,但不能创建另一个进程。我只希望它看起来像一个过程。不管我的shell脚本是被新进程替换还是在被调用的应用程序结束后继续执行,都没有关系。
这也应该可以解决我之前的问题:https
: //askubuntu.com/questions/247632/is-there-a-way-to-associate-additional-application-launcher-with-an-app
非常感谢您的帮助。
有没有一种方法可以从Shell脚本执行应用程序,但不能创建另一个进程。我只希望它看起来像一个过程。不管我的shell脚本是被新进程替换还是在被调用的应用程序结束后继续执行,都没有关系。
这也应该可以解决我之前的问题:https
: //askubuntu.com/questions/247632/is-there-a-way-to-associate-additional-application-launcher-with-an-app
非常感谢您的帮助。
Answers:
您可以使用以下exec
命令:
$ help exec
exec: exec [-cl] [-a name] [command [arguments ...]] [redirection ...]
Replace the shell with the given command.
Execute COMMAND, replacing this shell with the specified program.
ARGUMENTS become the arguments to COMMAND. If COMMAND is not specified,
any redirections take effect in the current shell.
Options:
-a name pass NAME as the zeroth argument to COMMAND
-c execute COMMAND with an empty environment
-l place a dash in the zeroth argument to COMMAND
If the command cannot be executed, a non-interactive shell exits, unless
the shell option `execfail' is set.
Exit Status:
Returns success unless COMMAND is not found or a redirection error occurs.
例:
user@host:~$ PS1="supershell$ "
supershell$ bash
user@host:~$ PS1="subshell$ "
subshell$ exec echo hello
hello
supershell$
如您所见,该子外壳由代替echo
。
&
在命令末尾使用?这将在子shell中运行命令,而这正是您不想要的。