mutt와 Offlineimap이라는 두 개의 창이 있는 새 세션을 원합니다. Offlineimap 창은 두 개의 다른 오프라인imap 인스턴스(다른 구성 파일 포함)를 사용하여 두 개로 분할되어야 합니다.
tmux new-session -d -s mail -n mutt mutt
tmux new-window -d -t mail -n offlineimap "offlineimap -c ~/.dotfiles/mutt/dev.offimap"
tmux split-window -d -v -t mail "offlineimap -c ~/.dotfiles/mutt/trash.offimap"
mutt 창만 생성되고 Offlineimap 창은 생성되지 않습니다. =>이 코드에 어떤 문제가 있나요?
편집하다:
내용을 변경해보니 효과 ""
가 sleep 1000
있었습니다.
편집 2:
두 번째 tmux 창이 "첫 번째 오프라인 지도와 동일한 메타데이터를 사용"했기 때문에 생성 직후 종료되는 것을 발견했습니다.
답변1
당신은 다음과 같이 썼습니다:
tmux new-session -d -s mail -n mutt mutt
tmux new-window -d -t mail -n offlineimap "offlineimap -c ~/.dotfiles/mutt/dev.offimap"
tmux split-window -d -v -t mail "offlineimap -c ~/.dotfiles/mutt/trash.offimap"
tmux_mail.sh
이것을 시도해 보세요 . 또는 원하는 이름 으로 작성하세요 .
#!/bin/bash
tmux \
-v \
new-session \
-d \
-s mail \
-n mutt \
mutt \
\; \
new-window \
-d \
-n offlineimap \
"offlineimap -c ~/.dotfiles/mutt/dev.offimap" \
\; \
split-window \
-d \
"offlineimap -c ~/.dotfiles/mutt/trash.offimap" \
\; \
attach
저장하고 실행 가능하게 만든 후 명령 프롬프트에서 실행하여 새로운 tmux 메일 세션을 즐기세요.
$ ./tmux_mail.sh
설명하다
\;
각new-window
또는split-window
인수를 단일 연속tmux
명령 의 일부로 만듭니다.- 따라서 이 모든 것이 단일 명령의 일부로 지정되면
-t
대상 세션을 지정할 필요가 없으므로 생략합니다.-t
tmux
- 마지막 줄을 제외한 모든 줄은 bash 줄 연속
\
(백슬래시, 공백, 줄 반환)을 사용하여 bash가 실행하기를 원하는 명령줄을 계속하면서 명령 전체를 작성할 수 있지만 각 명령에는 거의 하나의 옵션이 있습니다. 읽기 쉽고 명확하게 하기 위해 이 스크립트를 장기적으로 유지하는 데 도움이 될 수 있습니다. -v
자세한 로깅의 경우 구문 개요에 따라 처음에 지정해야 합니다.man tmux
-d
원하는 옵션을 완전히 지정할 수 있을 때까지 현재 터미널에 연결하는 기본 동작을 즉시 수행하지 않도록 분리해야 합니다 .attach
따라서 마지막으로 tmux가 실행하기를 원하는 모든 옵션이 완료되면 실제로 터미널에서 최종 결과를 확인 해야 합니다.- 예를 들어 프로그램이 비대화형이고 실행되고 종료되는 경우,
echo
프로그램을 실행한 다음 프로그램이 종료되면 창을 닫는 tmux에서도 유사한 상황이 발생합니다.
따라서 mutt
및 offlineimap
명령이 실제로 작동하고 즉시 우아하게 종료되지 않고 tmux 외부에서 잘 작동하는 한 이러한 명령을 사용하면 tmux에서 작동하여 원하는 tmux 세션을 생성해야 합니다.