tmux捕获窗格无法正确打印所有文本,而是在一些字符后插入换行符

dat*_*rus 1 linux bash tmux

我在这里有这个脚本:

tmux send-keys "${@:1}" Enter
sleep 2.5; tmux capture-pane -p -S -32767
Run Code Online (Sandbox Code Playgroud)

该脚本捕获tmux窗格并打印输出。我注意到,如果tmux未打开窗格,输出将如下所示:

L 05/15/2018 - 16:07:43
: "thebravelittleMercen
ary<348><[U:1:313493299
]><Blue>" say "!resizem
ytorso"
BOI: !resizemyhands
L 05/15/2018 - 16:07:44
: "BOI<377><[U:1:453920
082]><Red>" say "!resiz
emyhands"
Run Code Online (Sandbox Code Playgroud)

实际上,它应如下所示:

L 05/15/2018 - 16:07:43: "thebravelittleMercenary<348><[U:1:313493299]><Blue>" say "!resizemytorso"
BOI: !resizemyhands
L 05/15/2018 - 16:07:44: "BOI<377><[U:1:453920082]><Red>" say "!resizemyhands"
Run Code Online (Sandbox Code Playgroud)

值得一提的是,当我执行tmux attach并捕获窗格时,输出行的长度与控制台宽度相同:http : //i.cubeupload.com/Rp1BEU.png

l'L*_*L'l 5

输出在窗格中“包装”,因此您需要使用:

capture-pane -J
Run Code Online (Sandbox Code Playgroud)

-J连接换行,并在每行末端保留尾随空格。

https://docs.oracle.com/cd/E86824_01/html/E54763/tmux-1.html