2014-07-17 50 views
1

我需要關閉具有來自任何其他bash/shell腳本的唯一名稱的特定gnome-terminal窗口。從另一個scipt/shell命令關閉具有特定標題的gnome-terminal

如:

$] gnome-terminal --title "myWindow123" -x "watch ls /tmp" 

... 
... 

的gnome-terminal之名 「myWindow123」 打開

所有我需要的是殺死終端從我script.Is有期待那種在bash腳本也支持?

回答

2

至於當天的最醜陋的黑客選手:

sh$ TERMPID=$(ps -ef | 
       grep gnome-terminal | grep myWindow123 | 
       head -1 | awk '{ print $2 }') 
sh$ kill $TERMPID 

一個可能是更好的選擇將是通過PID記錄在啓動時終端的PID,然後殺死:

sh$ gnome-terminal --title "myWindow123" -x "watch ls /tmp" 
sh$ echo $! > /path/to/my.term.pid 

... 
... 
# Later, in a terminal far, far away 
sh$ kill `cat /path/to/my.term.pid` 
+0

我們能否期待樣的腳本在bash也? – Ashwin

0

在腳本啓動該終端:

#!/bin/bash 

gnome-terminal --title "myWindow123" --disable-factory -x watch ls /tmp & 
echo ${!} > /var/tmp/myWindow123.pid 

在腳本要殺終端:

#!/bin/bash 

if [ -f /var/tmp/myWindow123.pid ]; then 
    kill $(cat /var/tmp/myWindow123.pid && rm /var/tmp/myWindow123.pid) 
fi 
+0

增加_-- disable-factory_參數以允許腳本從gnome終端運行。 –