我想從bash shell運行一個程序。當程序運行時,它支配整個shell,所以我想啓動一個新的shell並從那裏運行程序。目前我在做:從bash shell啓動一個新的bash shell
gnome-terminal -x "cd Dropbox; program_name"
但是,給我的錯誤無法執行子進程,沒有這樣的文件或目錄。我相信那是因爲新終端沒有時間進行初始化。我怎樣才能解決這個問題?
我想從bash shell運行一個程序。當程序運行時,它支配整個shell,所以我想啓動一個新的shell並從那裏運行程序。目前我在做:從bash shell啓動一個新的bash shell
gnome-terminal -x "cd Dropbox; program_name"
但是,給我的錯誤無法執行子進程,沒有這樣的文件或目錄。我相信那是因爲新終端沒有時間進行初始化。我怎樣才能解決這個問題?
我承認這並不真正回答你的問題,但我認爲它解決了你的問題。
爲什麼不只是使用&
發送到後臺。你可以看到,如果它仍與jobs
運行並與fg
將其帶回前臺,您還可以發送回的背景下,通過先用按Ctrl + ž然後bg
實例停止它嘗試。
> sleep 20 &
> jobs
> fg [jobNumber]
[Ctrl-Z]
> jobs
> bg [jobNumber]
> jobs
在調用gnome-terminal之前使用程序或cd的絕對路徑。你需要一個&把它放在後臺。
cd Dropbox; gnome-terminal -x "program_name" &
嘗試增加「&」你的命令的末尾,例如:
gnome-terminal &
我不知道,如果它的工作與GNOME終端,但它與mrxvt運作良好。
嘗試screen。它是一個簡單的brogram,允許您同時跟蹤多個shell。您可以瀏覽每個打開的shell,甚至可以離開會話並稍後重新連接。
/bin/bash -c "/path/to/prog"
但也看看sleep
命令也。
嘗試:
bash -c 'gnome-terminal -x cd /absolute-path && program_name'
,使程序在後臺運行,可以使用與&命令。所以$ ProgramThatTakesALongTime& ...但是,不會顯示你從該程序輸出... – Nate 2011-06-02 18:31:57
@Nate是的,你可以看到程序在後臺運行的輸出。嘗試'eval'睡眠3;回聲「你好」'&' – 2013-02-08 16:53:48