5

这是我编写的一个小 shell 脚本。

x-terminal-emulator -e "optirun yarpserver" &
sleep 6
x-terminal-emulator -e "optirun iCub_SIM" &
sleep 60
x-terminal-emulator -e "optirun simCartesianControl" &
sleep 30
x-terminal-emulator -e "optirun iKinCartesianSolver --context simCartesianControl/conf --part left_arm" &

这样做是为每个程序打开一个新终端。我想要做的是打开新的终端选项卡而不是终端。我该怎么做呢?

4

2 回答 2

1

这个线程真的很老,但是如果有人来这里,我会留下一个我创建的 bash 脚本来启动多个选项卡以运行不同的命令:

#!/bin/bash

# Array of commands to run in different tabs
commands=(
    'tail -f /var/log/apache2/access.log'
    'tail -f /var/log/apache2/error.log'
    'tail -f /usr/local/var/postgres/server.log'
)

# Build final command with all the tabs to launch
set finalCommand=""
for (( i = 0; i < ${#commands[@]}; i++ )); do
    export finalCommand+="--tab -e 'bash -c \"${commands[$i]}\"' "
done

# Run the final command
eval "gnome-terminal "$finalCommand

只需在数组中添加命令并执行。

来源:http: //joaoperibeiro.com/command-line-script-to-launch-multiple-tabs/

于 2017-06-20T13:59:45.380 回答
0

我认为您最好的选择是使用tmux来完成这项工作。这里只是一个简单的例子和​​一步一步的解释。在这里,我只使用垂直分割,这可能会让您感到困惑,您应该阅读 tmux 手册页以了解如何选择窗格

  • 首先以分离模式创建一个新的 tmux 会话
  • 然后发送适当的命令来启动你的第一个程序
  • 创建一个新的垂直拆分
  • 发送适当的命令以启动您的第二个程序
  • 等等 ...
tmux 新会话 -d -s foo
tmux send-keys -t foo 'optirun yarpserver' Enter
tmux 拆分窗口 -v -t foo
tmux send-keys -t foo 'optirun iCub_SIM' Enter
tmux 拆分窗口 -v -t foo
tmux send-keys -t foo 'optirun simCartesianControl' Enter
tmux 拆分窗口 -v -t foo
tmux send-keys -t foo 'optirun iKinCartesianSolver --context simCartesianControl/conf --part left_arm' Enter

希望这对您有所帮助。

于 2013-09-07T11:14:51.590 回答