我有这个问题。我编写了非常简单的脚本,打开具有特定位置和大小的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的
但没有错误。
为什么这个脚本不能一次运行,而是分步运行?
答案 0 :(得分:0)
您是否尝试在后台运行每个?
gnome-terminal --geometry=90x45+960+0 &
gnome-terminal --geometry=83x21+0+0 &
gnome-terminal --geometry=83x20+0+500 &
答案 1 :(得分:0)
因此,您的脚本会运行三个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