如何创建一个脚本,在单独的终端窗口中运行另一个脚本并且不等待?

如何创建一个脚本,在单独的终端窗口中运行另一个脚本并且不等待?

我写了以下内容

#!/bin/bash
cd ~/bin/red5-1.0.0
gnome-terminal --working-directory=. -x red5.sh

red5.sh是要运行的脚本(这是java编写的媒体服务器)。

我上面的脚本打开新终端,但出现错误消息

There was an error creating the child process for this terminal
Failed to execute child process "red5.sh" (No such file or directory)

可能是什么原因?我在Ubuntu 11.10

答案1

工作目录不会影响您的$PATH1,因此我想如果您在终端中执行相同的操作,则可以理解发生的情况,即

$ cd ~/bin/red5-1.0.0
$ red5.sh

也不行;有效的是以下之一:

$ cd ~/bin/red5-1.0.0
$ ./red5.sh            # note the relative path to the script

或者

$ cd ~/bin/red5-1.0.0
$ export PATH=~/bin/red5-1.0.0:$PATH   # add the path to $PATH which is where 
$ red5.sh                              # the shell looks for red5.sh

因此,猜测其gnome-terminal工作原理类似(关于它在哪里查找可执行文件),您也可以通过其中一种方式更改您的脚本。

1:如果您的$PATH不包含.,正如凯文指出的那样(其他相对路径怎么样,顺便说一句?)。

相关内容