我是 Terminator 新手,需要启动 4 个终端。我有一个脚本 run1.sh
,我想在前两个终端上同时运行,并run2.sh
在另外两个终端上同时运行。
但是我想通过某个脚本启动上述四个终端,比如通过脚本,start.sh
这样它自己就可以启动终结器并将终结器拆分为四个窗口,然后run1.sh
在前两个窗口和run2.sh
另外两个窗口中运行脚本。请给我建议相关的方法(可以是任何 python/bash/perl),因为我可以通过手动启动终结器的四个窗口并分别执行命令,我想通过某个脚本来实现。提前致谢!!
答案1
以下 shellscript 在 Ubuntu 18.04 LTS 中对我有用。如果您有其他桌面环境,则应编辑脚本wcorr
和hcorr
值以匹配屏幕。
l4t
我建议这个 shellscript 的名字,
#!/bin/bash
wcorr=68 # manual fix for vertical panels
hcorr=26 # manual fix for horizontal panels
tmps=$(LANG=C xrandr|grep -om1 'current.*,')
tmps=${tmps/,}
tmps=${tmps/current }
echo "screen resolution = $tmps pixels"
wscr=${tmps/ x*}
hscr=${tmps/*x }
wter=$(( (wscr-wcorr)/2 ))
hter=$(( (hscr-hcorr)/2 ))
echo "terminal width = $wter pixels"
echo "terminal height = $hter pixels"
terminator --borderless --geometry="${wter}x${hter}+0+0" -x run1.sh &
terminator --borderless --geometry="${wter}x${hter}+0-0" -x run1.sh &
terminator --borderless --geometry="${wter}x${hter}-0+0" -x run2.sh &
terminator --borderless --geometry="${wter}x${hter}-0-0" -x run2.sh &
我已经使用以下脚本测试了该功能run1.sh
,并且run1.sh
run1.sh
:
#!/bin/bash
cnt=0
while [ $cnt -lt 10 ]
do
echo -n "$cnt"
sleep 1
cnt=$((cnt+1))
done
echo ""
bash
run1.sh
:
#!/bin/bash
cnt=9
while [ $cnt -ge 0 ]
do
echo -n "$cnt"
sleep 1
cnt=$((cnt-1))
done
echo ""
bash
我在这些脚本的末尾放了一个 bash 命令。否则脚本完成后终端窗口就会关闭。您可能想做些别的事情。
使三个 shellscript 可执行
chmod +x l4t run1.sh run2.sh
并将它们移动到 PATH 中的目录,
mv l4t run1.sh run2.sh /usr/local/bin/
现在您可以像运行其他命令一样使用名称来运行它们。
l4t
答案2
也许你可以尝试一下tmux和多路复用器
sudo apt install tmux tmuxinator
答案3
也许你可以参考这个链接来获得一种简单的方法,我已经将它发布在我的 github 上: https://github.com/kgnandanwar/Script-to-launch-mutiple-terminal-of-terminator
步骤1:创建必要的目录和一个空的配置文件
mkdir -p ~/.config/terminator/
touch ~/.config/terminator/config
nano ~/.config/terminator/config
步骤 2:复制粘贴以下代码(请确保根据您的 PC 调整以下代码第 19 行的显示分辨率
[global_config]
title_hide_sizetext = True
enabled_plugins = LaunchpadCodeURLHandler, APTURLHandler, LaunchpadBugURLHandler
suppress_multiple_term_dialog = True
[keybindings]
[profiles]
[[default]]
cursor_blink = False
font = DejaVu Sans Mono 9
scrollback_infinite = True
[layouts]
[[default]]
[[[root]]]
position = -4:0
type = Window
order = 0
parent = ""
size = 1870, 1020
[[[grand]]]
position = 536
type = HPaned
order = 0
parent = root
[[[left]]]
position = 942
type = VPaned
order = 0
parent = grand
[[[right]]]
position = 942
type = VPaned
order = 1
parent = grand
[[[terminal1]]]
profile = default
type = Terminal
order = 0
parent = left
[[[terminal2]]]
profile = default
type = Terminal
order = 1
parent = left
[[[terminal3]]]
profile = default
type = Terminal
order = 1
parent = right
command = ""
[[[terminal4]]]
profile = default
type = Terminal
order = 0
parent = right
[plugins]