- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个运行良好的 .txt 脚本,打开了几个 screen
窗口并运行了几个命令。然后,我添加了一个新行,保存它,运行脚本,但它不再有效。我决定把它放回原来的样子,但还是不行,代码和以前一模一样。我听说 screen
有很多错误并且不再受支持,所以我想是因为这个。这是代码:
screen -t ur10_server 0
stuff "cd ~/catkin_ws; source devel/setup.bash;
"
stuff "roslaunch ur_bringup ur10_bringup_joint_limited.launch robot_ip:=192.168.1.102
"
screen -t moveit 1
stuff "sleep 3; cd ~/catkin_ws; source devel/setup.bash;
"
stuff "roslaunch ur10_moveit_config ur10_moveit_planning_execution.launch limited:=true
"
screen -t enhance_ur10 2
stuff "sleep 10; cd ~/catkin_ws; source devel/setup.bash;
"
stuff "roslaunch ur10_3d_calibration ur10_nodes.launch
"
screen -t rviz 3
stuff "sleep 10; cd ~/catkin_ws; source devel/setup.bash;
"
stuff "roslaunch ur10_moveit_config moveit_rviz.launch config:=true;
"
screen -t calibration_manager 4
stuff "sleep 10; cd ~/catkin_ws; source devel/setup.bash;
"
stuff "rosrun ur10_3d_calibration interaction_manager.py
"
screen -t editor 5
stuff "sleep 10; cd ~/catkin_ws; source devel/setup.bash; roscd ur10_3d_calibration
"
hardstatus alwayslastline
hardstatus string "%{= KW} %H [%`] %{= Kw}|%{-} %-Lw%{=bW}%n%f %t%{-}%+Lw %=%C%a%Y-%M-%d"
select 0
bind "." next
bind "," next
运行它的方法是运行命令 screen -S real -c screen-real
,其中 screen-real 是 .txt 文件的名称。如果您没有注意到,我正在使用 ros。所以命令在不同的窗口运行不同的节点。
因为我假设问题出在 screen
上,所以我决定尝试使用 Tmux。尽管如此,如果您看到修复先前脚本的方法,我愿意接受。
所以,我的问题是:我应该如何以打开 5 个窗口并在每个窗口上运行 5 组不同命令的方式为 Tmux 编写 bash 脚本?所有命令都是非结束的,即它们不会结束运行。这就是为什么我需要打开几个窗口。
我已经在 Internet 的每个角落搜索了答案,但通常运行所需的命令已完成,在我的情况下,我在其他答案中看到的代码不适用。
如果您需要更多信息,请询问。我希望我已经足够清楚了。
最佳答案
我已经找到答案了。这是我为使用 5 个窗口启动 Tmux session 而编写的脚本,每个窗口运行几个独立的命令:
tmux new-session -d -s real
## Create the windows on which each node or .launch file is going to run
tmux send-keys -t real 'tmux new-window -n NAME1 ' ENTER
tmux send-keys -t real 'tmux new-window -n NAME2 ' ENTER
tmux send-keys -t real 'tmux new-window -n NAME3 ' ENTER
tmux send-keys -t real 'tmux new-window -n NAME4 ' ENTER
tmux send-keys -t real 'tmux new-window -n NAME5 ' ENTER
tmux send-keys -t real 'tmux new-window -n NAME6 ' ENTER
## Send the command to each window from window 0
# NAME1
tmux send-keys -t real "tmux send-keys -t NAME1 'COMMAND' ENTER" ENTER
# NAME2
tmux send-keys -t real "tmux send-keys -t NAME2 'COMMAND' ENTER" ENTER
# NAME3
tmux send-keys -t real "tmux send-keys -t NAME3 'COMMAND' ENTER" ENTER
# NAME4
tmux send-keys -t real "tmux send-keys -t NAME4 'COMMAND' ENTER" ENTER
# NAME5
tmux send-keys -t real "tmux send-keys -t NAME5 'COMMAND' ENTER" ENTER
# NAME6
tmux send-keys -t real "tmux send-keys -t NAME6 'COMMAND' ENTER" ENTER
## Start a new line on window 0
tmux send-keys -t real ENTER
## Attach to session
tmux send-keys -t real "tmux select-window -t NAME5" ENTER
tmux attach -t real
因此这段代码实际上创建了 6 个窗口,因为第一个窗口仅用于向其他窗口发送命令。最后,我选择窗口 5,这样当我附加它时它会显示窗口 5
关于linux - 如何使用 bash 脚本在使用 Tmux 的 Linux 上运行多个非结束命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39765692/
在 Mac Mountain Lion 上,tmux 通过 Homebrew 安装。 以下某些设置不起作用: setw -g pane-base-index 1 set -g mouse-resize
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 8年前关闭。 Improve this q
我正在编写一个 shell 脚本,用于创建/附加或切换到给定 session ,具体取决于 session 是否位于 tmux 内部以及 session 是否存在。 除了需要在 tmux sessio
我在 iTerm2 中使用 tmux 已经有一段时间了,但我没有使用现在 iTerm2 附带的 tmux 集成。 我开始考虑使用 tmux 集成,因为它允许您在 tmux 中使用 shell 集成。
我正在尝试编写一个可以运行/源代码的脚本,以便 tmux 设置特定的布局并运行命令。我有一些结果。 这是我到目前为止所写的内容: selectp -t 1 splitw -v -p 15 splitw
我写了 this thing每当在运行 session 中创建新窗口时,我都想获取 Python virtualenv activate 脚本。 是否可以? default-command 选项与 s
我想从下到上移动窗口列表。 如果应用程序的状态栏在 tmux 窗口列表上方,我会觉得它很奇怪。 任何提示? 最佳答案 看到这个 answer on Unix & Linux .如果您从 SVN 构建,
我在 gnome 终端内使用 tmux。 当我第一次打开一个窗口(默认大小为 80x24)时,tmux 栏紧贴在窗口的底部。然而,当我最大化终端窗口时,tmux 栏下方会出现一个令人讨厌的大间隙。 m
Tmux 使用 scroll 来查找历史命令,这让我很困扰。如何禁用此功能?我曾尝试使用“设置鼠标”,但它给了我另一个问题。我只想一直禁用我的鼠标,让滚动保留其原始用途。 最佳答案 Tmux 不再有鼠
我刚刚在我的新 MacBook Pro 上安装了 tmux,并且遇到了以下问题。 当我通过命令 tmux new-window 创建一个新窗口时我得到一个与我正在创建的 session 具有相同工作目
我经常同时运行几个 tmux session ,在大多数这些 session 中,我将在一个端口上运行一个本地服务器。我想要的是能够在从 tmux session 分离时自动终止该服务器,并在重新连接
有没有办法重新编号或交换 tmux session ,就像您可以重新编号或交换 tmux 窗口一样?我看不到它的任何命令,并希望在某些 session 之间轻松切换。 最佳答案 它们按名称排序(默认为
tmux 有一个命令模式,可以通过 C-b : 访问我想知道在我的 .tmux.conf 中是否有别名命令的方法像 split-window 这样的文件对于我更常用的东西,例如 vsp在 vim. 我
这样做的天真方法行不通。尝试这个: 启动第一个 tmux session 。 $ export ENVIRONMENT="production" $ tmux 然后您可以在 session 内验证 E
我管理着多台 Linux 机器,其中一些在存储库中的 tmux 版本为 2.1,而另一些的 tmux 版本低于 2.1。我使用鼠标模式,我知道在 tmux 2.1 中,启用鼠标模式的选项已更改为: s
我在 tmux 命令提示符下使用 Backspace 键时遇到问题。退格会删除 tmux 中的前一个字符(如预期的那样),但不会在 tmux 命令提示符下删除。例如,:lists不会删除 's' 字符
刚刚通过 homebrew 安装了 tmux我正在尝试找到系统范围的 tmux 配置文件。手册页指出系统范围的文件应该位于 /etc/tmux.conf ,但由于某种原因,它不在那里。默认在哪里tmu
我在 iTerm2 中使用 tmux。 当我在 bash 中时,使用 Ctrl-L 清除屏幕有效,但在我拖尾服务器日志时不起作用。我该如何解决? 最佳答案 您可以使用 send-keys -R 清除当
我可以设置 tmux 以在进程完成时在非事件窗口中触发警报吗? 例如:我开始了一个漫长的构建过程。我希望在完成时收到通知,而不是每次打印状态时都收到通知。 最佳答案 我很惊讶还没有给出这个答案:您可以
这是this question的后续. 假设我在一个 tmux session 中,我想打印 的名称当前 socket 正在使用。我怎样才能做到这一点? 最佳答案 当前服务器套接字的信息存储在 TMU
我是一名优秀的程序员,十分优秀!