muttとOfflineimapという2つのウィンドウを持つ新しいセッションが必要です。オフラインマップウィンドウは、2つの異なるオフラインimapインスタンス(他の設定ファイルを含む)を使用して2つに分割する必要があります。
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:
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が実行したいコマンドラインを続けながらコマンド全体を作成できますが、各コマンドにはほぼ1つのオプションがあります。読みやすく明確にするために、このスクリプトを長期的に維持するのに役立ちます。 -v
詳細なロギングの場合は、構文の概要に従って最初に指定する必要があります。man tmux
-d
必要なオプションを完全に指定できるまで、現在の端末に接続するデフォルトの動作をすぐに実行しないように分離する必要があります。attach
したがって、最後にtmuxが実行したいすべてのオプションが完了したら、実際に端末で最終結果を確認する必要があります。- たとえば、プログラムが非対話型で実行および終了すると、プログラムを
echo
実行してからプログラムが終了するとウィンドウを閉じるtmuxでも同様の状況が発生します。
したがって、コマンドが実際に機能し、すぐにエレガントにシャットダウンせず、tmuxの外部でmutt
うまくofflineimap
機能する限り、これらのコマンドを使用すると、tmuxで動作して必要なtmuxセッションを作成する必要があります。