如果我有一个shell脚本来确定任意Tmux会话的名称,如何配置Tmux在创建新会话时调用它(同时使用tmux new
和:new-session
)并将其输出用作会话名称?
答案 0 :(得分:2)
在chepner的答案基础上,如果你在tmux里面,那么这就可以了
new-session ; run-shell "tmux rename-session $(echo testsession)"
您可以将此命令绑定到一个键,比如N,以便于下面的
bind N new-session -s "startname" \; run-shell "tmux rename-session $(echo testsession)>/dev/null"
用您的命令替换'echo testsession'。 在测试期间,tmux不允许明显的“运行”tmux new -s $(echo testsession)“'并返回错误
答案 1 :(得分:0)
在命令行中,您不需要任何tmux
特定功能,只需在shell中使用普通的vanilla命令替换。假设您的脚本名为make-session-name
:
tmux new-session -s "$(make-session-name)"
可能有一种方法可以在tmux
命令提示符下执行类似操作,但我不知道。
答案 2 :(得分:0)
这里有一个创建tmux会话的小脚本,命名第一个窗口" home",创建第二个窗口并命名为#34;下载",将其更改为下载目录并列出它的内容,然后打开附加到此会话的tmux。这应该会告诉你你的目标。
#!/bin/bash
SESSION=$USER
tmux -2 new-session -d -s $SESSION
# Setup a window for home dir
tmux rename-window 'home'
# Setup a download window
tmux new-window -t $SESSION:1 -n 'download'
tmux send-keys "cd /home/user/download; ls -lh" C-m
# Set default window
tmux select-window -t $SESSION:0
# Attach to session
tmux -2 attach-session -t $SESSION