用几个选项卡打开gnome终端,并在每个选项卡中执行一些命令


12

这是我要完成的工作:

  1. 我想打开一个带有五个标签的gnome终端
  2. 我想在每个选项卡中自动运行一组命令(5 – 10条命令)第一个选项
    卡:应设置清晰的视图,然后执行一个或多个命令。
    第二个选项卡:应登录到服务器并执行一些命令。
    第三个选项卡:只能执行一些命令

gnome-terminal --geometry=260x25-0+0 --tab -e "csh -c \"ct setview myViewName; cal\"" –tab --tab --tab (工作正常,已设置视图,但此后未执行任何命令)

我试图用这种方式代替,并在下面的脚本中运行它:

gnome-terminal --geometry 125x18-0-26 --tab -t "some title" -e /home/ekido/Desktop/MyScripts/myScript

#!/usr/bin/expect
exec gnome-terminal --geometry 125x49-0+81 –tab
spawn ssh usert@server
expect "password"
send "*******\r"
expect "user@server100:~>"
send “some command\r"
expect "user@server100:~>"
send “some command"
interact 

如果我exec gnome-terminal --geometry 125x49-0+81 –tab从示例中删除行并从其他文件中调用脚本,则可以正常工作-我登录到服务器并执行了所有命令。谁能帮我解决这个问题?

编写一个我为每个选项卡调用的脚本不是一种选择,因为我将有5个终端,每个终端都有5-7个选项卡,这意味着将要编写25到30个脚本(成本比帮助大得多)在我的问题)。


并不是我是GNOME Terminal的专家,但是您创建的选项卡应该保存在配置文件中。创建配置文件后,我相信您可以编写脚本。请参阅GNOME帮助中的管理配置文件
eyoung100 2014年

Answers:


11

这似乎在我的机器上工作:

gnome-terminal --geometry=260x25-0+0 --tab -e "bash -c 'date; read -n1'" --tab -e "bash -c 'echo meow; read -n1' " --tab --tab

请注意,由-e执行的进程一旦运行完毕,它们就会终止。在这种情况下,将加载bash,运行传递给它的所有命令,并立即存在。我输入了read语句以等待用户输入。这样,这些选项卡在您按下一个键之前不会关闭,只是为了在本示例中可以看到它。如果没有它们,则好像只有两个选项卡打开,因为其他两个选项卡执行和关闭都太快了。


感谢您的回答。当然,我可以处理一个命令的输出(在本例中为“ date”),但是我想执行多个命令,能够处理输出,然后继续在同一选项卡中手动编写新命令。
ekido 2014年

3

由于bash在命令完成后退出,因此您可以在命令后调用另一个实例bash来获取交互式shell:

gnome-terminal  --tab -e "bash -c 'ps -ef; bash'" --tab -e "bash -c 'ls; bash'" --tab -e "bash -c 'top -n 1; bash'"

看来,如果我关闭终端,则基础进程不会自动关闭,是否也有解决方案?我想关闭整个窗口,所有带有其进程的选项卡都将被杀死
Blub

2

将以下另存为script.sh

#!/usr/bin/env bash

me=$(realpath $0)

commands=(
"echo"
"ls -l && echo 'yes'"
"top"
"ps"
)
len=${#commands[@]}

if [ $# -eq 0 ];then
    num=$len
else
    num=$1
fi

n=$((len-num))
command=${commands[$n]}
num=$((num-1))

xdotool key ctrl+shift+t

if [ $num -gt -1 ]; then
    sleep 1; xdotool type --delay 1 --clearmodifiers "$me $num; ${command}"; xdotool key Return;
fi

将script.sh添加到$ PATH然后运行它

gnome-terminal -x script.sh

请参阅使用命令行在gnome-terminal中打开新选项卡


除此以外,其他所有失败。现在,我想在不使用命令的情况下打开某些选项卡。例如,我想有十个选项卡打开,但三,如果他们可以运行像HTOP一些命令..
nyxee
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.