通过bash脚本启动带有cmus opend的tmux

时间:2012-12-06 18:12:27

标签: bash tmux

我想在其中打开一个带有cmus的新tmux会话和窗口,或者如果alredy正在运行,则附加到它。在Ubuntuusers,我发现这个脚本应该这样做。

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]

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

1 个答案:

答案 0 :(得分: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