2012-12-06 2 views
2

새 tmux 세션과 창을 열거 나 cmus가있는 창을 열고 싶습니다. 실행 중이면 첨부하십시오. Ubuntuusers에 나는 그것을해야하는이 스크립트를 발견했습니다.tmux와 cmus opend를 bash 스크립트를 통해 시작하십시오.

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 

내가 alredy 내가

tmux new -n music cmus 

사용하여 수동으로 할 수 있다는 것을 알고하지만 스크립트에서 사용할 때 난 단지 내가 새로운 그것을 시도 메시지

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

를 얻을 수 - 세션, 그러나 변화 없음.

답변

4

내가 해결 한 방법은 메인 tmux 세션을 갖는 것입니다. mutt 또는 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 
+0

감사 예를 들어,는 CMU에 대해 나는 별명을 가지고있다. 하지만 불행히도 여기서는 작동하지 않습니다. 세션이 없으면 완벽하게 작동하지만 알레시 세션이있을 때 '창을 만들지 못했습니다. 인덱스가 사용 중입니다 : 0'이라고 표시됩니다. 또한 내 기술은 내가 당신의 스크립트의 100 %를 이해하는 그 높이가 아닙니다. 당신 아이디어가 있습니까? – ElronMcBong

+0

정말요? 이미 세션이있는 경우에도 작동합니다. tmux new-window -a -t $ {name} $ * – robotoloco

+0

또한 스크립트 뒤에있는 아이디어는 특정 세션이 실행 중인지 확인하는 것입니다 (즉, 새로운 -session 또는 new-window). 이 검사는 tmux has-session -t $ {name}의 종료 상태에서 제공됩니다. 종료 상태는 자동 쉘 변수 $?에 저장됩니다. – robotoloco

관련 문제