2

我想打开一个新的 tmux 会话和带有 cmus 的窗口,或者,如果已经运行,则附加到它。在Ubuntu 用户中,我找到了应该执行此操作的脚本。

1. #!/bin/bash
2. SESSION=main
3. tmux="tmux -2 -f tmux.conf"
4. 
5. # if the session is already running, just attach to it.
5. $tmux has-session -t $SESSION
7. if [ $? -eq 0 ]; then
8.   echo "Session $SESSION already exists. Attaching."
9.   sleep 1
10.  $tmux attach -t $SESSION
11.  exit 0;
12.  fi

我已经知道我可以手动完成

tmux new -n music cmus

但是当我在脚本中使用它时,我只会得到消息

usage: new-session [-d] [-n window-name] [-s session-name] [-t target-session] [-x width] [-y height] [command]

我也用新会话尝试过,但没有改变。我绝对不知道命令或脚本或两者都有什么问题

4

1 回答 1

4

我解决这个问题的方法是有一个主 tmux 会话,像 mutt 或 cmus 这样的程序可以启动或连接。例如,对于 cmus,我有一个别名:

alias cmus='monkeys -n music cmus'

猴子是以下脚本:

#! /bin/sh

name=monkeys

# make sure tmux server is running:
tmux start-server

# determine if monkeys session is running:
tmux has-session -t ${name}

# no monkeys running, create monkeys,
# if more than one argument, take it as a command to run 
# on monkeys, else just attach to monkeys
if [ "$?" != "0" ]; then
    tmux new-session -s ${name} $*
elif [ $# -gt 0 ]; then
    tmux new-window -t ${name} $*
else
    tmux a -t ${name}
fi
于 2012-12-06T18:55:12.610 回答