[英]shell Script is executed in steps
我有這個問題。 我寫了一個非常簡單的腳本,要打開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時,工作區被切換並打開了第一個終端,並且腳本停止了。 當我關閉終端時,腳本將繼續打開第二個終端,然后再次停止。 這是所有3個端子的。
當我嘗試通過crontab進行操作時,也會發生同樣的情況。
我做了
2>〜/ test.txt
但沒有錯誤。
為什么這個腳本不能一次運行,而是一步一步運行?
您是否嘗試過在后台運行它們?
gnome-terminal --geometry=90x45+960+0 &
gnome-terminal --geometry=83x21+0+0 &
gnome-terminal --geometry=83x20+0+500 &
因此,您的腳本運行了三個gnome-terminal
,這就是您描述的行為的原因(就像mkdir x; ls
: ls
:在mkdir
完成后運行)。
如果要在所有終端完成后運行wmctrl -s 0
,請使用以下命令:
#!/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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.