简单的tmux bash脚本无法正常工作

mar*_*ark 9 bash tmux

我希望tmux打开一个新窗口,然后cd进入一个目录,但它不起作用.它只是在我的脚本运行的目录中打开tmux(即它不执行cd命令).

有人能告诉我我做错了什么吗?(我正在使用tmux 1.6)

#!/bin/bash                                                                                                                             
tmux start-server
tmux new-session -d -s my_server -n runstuff

tmux send-keys -t my_server:1 "cd /etc"

tmux select-window -t my_server:1
tmux attach-session -t my_server
Run Code Online (Sandbox Code Playgroud)

mar*_*ark 13

我终于让它工作了,使用Cm并从0开始编号窗口.我添加了第二个命令用于说明目的.

#!/bin/bash                                                                                                                             
tmux start-server
tmux new-session -d -s my_server -n runstuff
tmux new-window -t my_server:1 -n someotherjunk

tmux send-keys -t my_server:0 "cd /etc" C-m
tmux send-keys -t my_server:1 "./yolo" C-m

tmux select-window -t my_server:runstuff
tmux attach-session -t my_server
Run Code Online (Sandbox Code Playgroud)

  • 你可以在这里省略`start-server`,它不是必需的;它启动的服务器将立即退出,因为您没有从同一个“tmux”shell 命令创建任何会话。你可以做`start-session \; new-session ...` 在单个 shell 命令中发出多个 *tmux* 命令,但没有必要这样做,因为如果没有正在运行的服务器,则 `new-session` 将启动服务器。自动启动服务器的另一个命令是“attach-session”(仅当您在配置文件中创建会话时才有用)。 (2认同)