2017-05-31 147 views
1

如何以編程方式打開終端應用程序,如Gnome終端,並運行cd /some/path; source ./setup.bash?我正在嘗試編寫一個腳本,它將自動啓動一些通用終端和IDE以便工作。以編程方式打開Gnome終端並運行命令

我想:

gnome-terminal --tab --working-directory="/some/path" -e 'source ./setup.bash' 

,但會啓動GNOME終端窗口,而該窗口會顯示錯誤:

Failed to execute child process "source" (No such file or directory) 

據推測,這是因爲它沒有執行在bash命令,所以我改爲設法:

gnome-terminal --tab --working-directory="/some/path" -e 'bash -c "source ./setup.bash"' 

然而,似乎做什麼都沒有。它不會啓動窗口,也不會生成任何stdout或stderr輸出。

我能得到的最接近的是:

gnome-terminal --tab --working-directory="/some/path" -e 'bash -c "source ./setup.bash; bash -i"' 

會啓動GNOME終端,似乎正確地源setup.bash,但一些終端格式由setup.bash設置不顯示,可能是因爲我啓動一個新的bash外殼。

有沒有更好的方法?

回答

1

當您使用-e選項時,gnome-terminal將運行該命令而不啓動新的shell(甚至可以運行如下所示的內容:gnome-terminal -e gedit),因此如果要將命令運行到bash shell的進入,你必須做這樣的事情一個新的終端/標籤:

gnome-terminal -x bash -c "command" 

但需要注意的是,當「命令」結束端子/標籤將結束了。

+0

這似乎並不奏效。如果我嘗試'gnome-terminal --tab --working-directory =「/ some/path」-x'bash -i -c「source ./setup.bash」''我得到錯誤'執行子進程失敗「bash -i -c」source ./setup.bash「」'正如我在我的問題中所暗示的,我不希望標籤結束。 – Cerin

+0

您是否嘗試瞭如下,gnome-terminal -x「bash」-c「command」爲我工作。請注意-x參數值上的引號。 – Harini

0

您可以指定bash啓動文件來設置變量。您可能希望該文件有source $HOME/.bashrc它:

$ gnome-terminal --working-directory="/some/path" -e 'bash --rcfile ./setup.bash -c gdb' 

可以在以後寫一個命令,因爲我有-c gdb

相關問題