2012-11-30 162 views
16

運行在新的終端shell腳本如何從像在Windows「開始test.bat的」,也應該在控制檯模式下可正常工作的終端運行在Linux中一個新的終端shell腳本。從當前終端

+1

您需要支持哪些窗口環境? –

回答

18

這裏有一個簡單的例子,讓你開始的命令替換LS:

寫一個shell腳本,請在命令提示符處執行以下操作:

echo -e '#!/bin/sh\n echo "hello world"' > abc.sh 

寫道:

#!/bin/sh 
echo "hello world" 

一個叫abc.sh

下一個文件,你要設置它通過爲可執行文件:

./abc.sh 

和:

chmod +x abc.sh 

現在,你可以通過運行你應該看到:

hello world 

在你的終端。

要在新終端中運行它,你可以這樣做:

gnome-terminal -x ./abc.sh 

,或者如果它是xterm

xterm -e ./abc.sh 

這裏有一個list of different terminal emulators

或者,你只要運行它在當前的終端,而是一個後臺它,而不是通過:

./abc.sh & 
+0

它的工作原理fineThank你這麼多的幫助,和我有其他疑問將所有類型的支持Linux操作系統的gnome-terminal命令的? – mreaevnia

+0

@RaviKumar不,這並不普遍。它很大程度上取決於Linux發行版使用的桌面環境:http://en.wikipedia.org/wiki/List_of_terminal_emulators通常它是gnome-terminal或xterm –

+0

另外我需要在我使用linux機器時應該工作的命令遠程登錄會話。我希望這會有答案。 – mreaevnia

4

GNOME的嘗試。

與您要運行

gnome-terminal -x sh -c "ls|less" 

我希望這是你想要的

2

我來這裏是想弄清楚如何使一個腳本生成一個終端,並在其中運行的自我,所以對於那些想要這樣做的人,我想出了這個解決方案:

if [ ! -t 0 ]; then # script is executed outside the terminal? 
    # execute the script inside a terminal window 
    x-terminal-emulator -e "$0" 
    # and abort running the rest of it 
    exit 0 
fi 
+0

請等待腳本上有參數調用嗎?他們不會被授予新碼頭的腳本,對嗎? – Kapichu