0

私は自分のプロジェクトで bash スクリプトと python を学習しています。実行完了後に端末を強制終了したいと考えています。私はプロセスを1つの端末で実行し、それを実行すると新しい端末が開き、要求された操作が実行され、後で完了後に新しい端末を閉じる必要がありますが、これは発生していません。私のコードは次のとおりです。

import os    
os.system(""xfce4-terminal -e 'bash -c \"./testing.sh; exec bash\"'") 

これを実行すると、新しいターミナルが開き、その中で実行されます。実行後、「pwd」は

ubuntu:-/home/new$

そこにコマンドを送信できません。
完了後、次の実行のために新しいターミナルを開きたいので、ターミナルを強制終了します。

私はこれを試してみましたが、うまくいきますが、Pythonスクリプトを追加する方法がわかりません:

a=`tty`    
echo $a   
b=`tty | sed 's/\/dev//'`  
echo $b  
c=`ps aux | grep $a | grep 'bash$' | awk '{print $2}'`  
echo $c  
d= `$c | awk '{print $1}'   
kill -9 $d  

提案を探して、解決策を得るために私を案内してください。前もって感謝します。

4

3 に答える 3

0

私はこのようなことを試してみましたが、現在は機能しています:

os.system("xfce4-terminal -e 'bash -c \"./testing.sh ; sleep 20 ; exit 0\"'")

助けてくれてありがとう。

于 2013-06-03T04:18:18.607 に答える
0

端末は、最後の子プロセスが終了すると閉じます。これは私があなたが望むと思うことをします:

os.system("xfce4-terminal -e 'bash -c \"echo hello ; /bin/bash ; exit 0\"'")

私がテストしたもの。

コメントに応じて追加

/usr/bin/usb-devicesUbuntuには、stdout に出力してから終了するシェル スクリプトがあります。Pythonを実行すると

os.system("xfce4-terminal -e /usr/bin/usb-devices")

ターミナルが表示され、スクリプトの出力が表示され、ターミナルが終了します。これほど簡単なことはありません。

于 2013-06-01T11:12:54.363 に答える