2012-12-04 78 views
0

雙擊可執行sh文件關閉我要在Fedora Linux系統的一個項目工作,我必須鍵入以下經常:終端窗口後在Fedora Linux系統

player map1.cfg &

我想通了,我可以創建一個可執行的sh文件,它包含此:

#!/bin/bash 
player *.cfg & 

然而,當上了runmap.sh文件雙擊它顯示我「在終端中運行」,「顯示」,「取消」和「運行'當我點擊'在終端中運行'時,終端窗口打開並關閉立即中斷伊利。如果我點擊「運行」,那麼.cfg會打開,但我需要終端窗口來運行其他(Java)文件。

我該如何解決這個問題?

其他信息:

  • 我使用*.cfg因爲我想複製並粘貼.SH文件到也包含.CFG文件,如map2.cfg,map3.cfg等

    其他文件夾
  • 這是一個球員/舞臺項目。

回答

2

當您從文件管理器運行腳本時,啓動的shell不是交互式的。 shell只能讀取腳本文件。

要除文件打開一個交互式的shell,你可以exec在腳本的末尾新的外殼,並使用「在終端中運行」:

#!/bin/bash 
player *.cfg & 
exec /bin/bash 
+0

這工作完美。現在,Google已經搜索了很多小時的解決方案。謝謝! – iMaddin

1

那麼讓我們來看看這種方式。

在終端中運行命令時,該命令作爲子進程啓動,然後發送到後臺。一旦命令完成,它終止。在後臺運行期間,您仍然可以發出命令,因爲您的父進程是終端窗口本身。

當你編寫一個腳本來發出一個在後臺運行的命令時,它會啓動,並將該命令作爲孩子生成,然後關閉,因爲腳本已經完成。

這些是操作系統的行爲和真正不應該改變的東西。從本質上講,你所要求的是讓它自己快速運行命令的一種方式,但仍然留下一個命令終端供你使用?

1)爲什麼輸入命令如此麻煩?由於這個原因,Bash和其他終端具有歷史功能。

2)當你需要調用命令時,爲什麼不直接調用你從終端窗口編寫的迷你腳本。如果將腳本放在$ PATH變量的文件夾中,它將在任何位置的終端中供您使用。

+0

我真的必須鍵入'玩家MAP1 .cfg&許多次。我會猜測數百次!每當我打開這個cfg文件時,我都可以測試我的Java類是否按照它的設想進行測試,如果沒有,那麼我必須關閉.cfg打開的窗口,然後再次輸入以再次用我的Java類進行測試。當我真的只想讓事情運行很累人時,這是很多打字並且不得不重複輸入。如果我只需要進行1次雙擊+ 1次點擊,而不是每次輸入17個不同的字符(這甚至不包括我的朦朧或忘記'&'),它可以節省大量時間。 – iMaddin

+0

你使用'bash'嗎?爲什麼不直接按?其他終端(ksh)也有歷史記錄,您可以查閱。或者,就像我說的。運行一個終端,然後調用你的小腳本'testMapcfg.sh'。如果您修改$ PATH以包含腳本本身的位置,您可以從任何地方運行該腳本 – Grambot

+0

我知道我可以按'up',但由於之後我將運行Java文件,因此需要搜索命令並且可能會很痛苦選擇錯字的。有時候播放器出現問題,終端窗口不會讓我輸入任何新的命令。所以我必須關閉並重新打開。我不認爲你理解我:)也許這有助於說我是Mac用戶,並且我希望事情儘可能地方便用戶^ ^! – iMaddin