我想使用一个脚本来打开一个有 6 个窗口的 tmux 会话,每个窗口都在不同的目录中。我从找到的脚本开始,并首先尝试了这个:
tmux new-session -s xyz -n etc -d 'cd /etc'
tmux new-window -t xyz:1 -n var 'cd /var/log'
但我很快发现这不会像我预期的那样工作——在 shell 命令完成后窗口将关闭。
所以我的下一个想法是像这样启动一个新的shell:
tmux new-session -s xyz -n etc -d 'cd /etc; bash -i'
tmux new-window -t xyz:1 -n var 'cd /var/log; bash -i'
tmux new-window -t xyz:2 -n var2 'cd /var/log; bash -i'
tmux new-window -t xyz:3 -n var3 'cd /var/log; bash -i'
tmux new-window -t xyz:4 -n var4 'cd /var/log; bash -i'
tmux new-window -t xyz:5 -n var5 'cd /var/log; bash -i'
tmux new-window -t xyz:6 -n var6 'cd /var/log; bash -i'
tmux select-window -t xyz:1
tmux -2 attach-session -t xyz
这几乎可以工作。但是如果我启动超过 4 个窗口,我经常会在启动后在其中一个窗口中看到以下 bash 错误:
bash: [: =: unary operator expected
bash: [: too many arguments
bash: [: =: unary operator expected
bash: [: =: unary operator expected
bash: [: =: unary operator expected
bash: [: =: unary operator expected
bash: [: too many arguments
bash: [: =: unary operator expected
bash: [: =: unary operator expected
bash: [: =: unary operator expected
bash: [: =: unary operator expected
bash: [: =: unary operator expected
我不知道为什么会发生这种情况,但我仍然认为我做的不对。有没有更好的方法在多个目录上设置 tmux 会话?