我想从bash shell运行一个程序。 当程序运行时,它支配整个shell,所以我想开始一个新的shell并从那里运行程序。 目前我在做:
gnome-terminal -x "cd Dropbox; program_name"
但是,给我的错误无法执行subprocess,没有这样的文件或目录。 我相信那是因为新的terminal没有时间来初始化。 我怎样才能解决这个问题?
我承认这不能真正回答你的问题,但我认为它解决了你的问题。
为什么不使用&
将其发送到背景。 你可以看到它是否仍然在运行,并且用fg
把它带回到前台,你也可以把它发回到后台,首先用Ctrl + Z停止它,然后bg
例如尝试。
> sleep 20 & > jobs > fg [jobNumber] [Ctrl-Z] > jobs > bg [jobNumber] > jobs
尝试:
bash -c 'gnome-terminal -x cd /absolute-path && program_name'
在调用gnome-terminal之前使用程序或cd的绝对路径。 你需要把它放在后台。
cd Dropbox; gnome-terminal -x "program_name" &
试试屏幕 。 它是一个简单的brogram,可以让你跟踪多个shell在同一时间。 您可以浏览每个打开的shell,甚至可以离开会话并稍后重新连接。
尝试在命令末尾添加“&”,例如:
gnome-terminal &
我不知道它是否与gnome-terminal一起工作,但它与mrxvt很好地协作。
/bin/bash -c "/path/to/prog"
但是也要查看sleep
命令。