2016-12-06 13 views
0

この問題があります。私は非常に単純なスクリプトを書いて、特定の位置とサイズの3つの端末を開き、起動後にそれを実行したい。シェルスクリプトがステップで実行されます

スクリプト:

#!/bin/sh  

wmctrl -s 1 

gnome-terminal --geometry=90x45+960+0 
gnome-terminal --geometry=83x21+0+0 
gnome-terminal --geometry=83x20+0+500 

wmctrl -s 0 

私はターミナルでこのスクリプトを実行すると、それは完璧に動作します。

"スタートアップアプリケーション"で実行しようとしました。 しかし、PCを再起動すると、ワークスペースが切り替えられて1番目の端末が開き、スクリプトが停止しました。私がターミナルを閉じたとき、スクリプトは2番目のターミナルを開いて再び止まります。これはすべての3つの端末にあります。

私はcrontabでやろうとしたときと同じです。

私は

>〜/ test.txtの2

が、エラーなしをしました。

なぜこのスクリプトは一度に実行されないのですか?

+0

'' 2>〜/ test.txt'を:あなたは '〜'の場所の確信していますか?代わりに絶対パスを入れようとしています... –

+0

@ Jean-FrançoisFabreテストファイルが作成されましたが空でしたので、 '〜'はうまくです – snyco

答えて

0

それぞれをバックグラウンドで実行しましたか?

gnome-terminal --geometry=90x45+960+0 & 
gnome-terminal --geometry=83x21+0+0 & 
gnome-terminal --geometry=83x20+0+500 & 
+0

それは動作しますが、Kirill's、最後の部分 'wmctrl -s 0'実行されません。 – snyco

0

スクリプトは3 gnome-terminal結果的に、それはあなたが説明した動作は、(それがmkdir x; lsのようだ:mkdir終了後ls実行)理由です動作します。

あなたはすべての端末が終了したときに、この使用し、wmctrl -s 0を実行したい場合は、次のcrontabから

#!/bin/sh  

wmctrl -s 1 

pids= 
for geom in 90x45+960+0 83x21+0+0 83x20+0+500; do 
    # run gnome-terminal in background and save its process ID 
    gnome-terminal --geometry="$geom" & 
    pids="$pids $!" 
done 
wait $pids 

wmctrl -s 0 
+0

これはtermianlsで動作しますが、最後のコマンド 'wmctrl -s 0'は実行されません。 – snyco

関連する問題