Akira
发布于

如何获取tmux -t 发送的命令执行的结果

1、创建一个会话 tmux new -s demo -d

2、在命令行执行 tmux send -t demo "ps -ef | grep nginx | grep -v grep | wc -l" C-m

3、本地服务器关闭nginx服务

4、进入会话 tmux a -t demo看到上述命令执行结果为0

5、本地开启nginx服务

6、在此在会话外部命令行执行 tmux send -t demo "ps -ef | grep nginx | grep -v grep | wc -l" C-m 向会话发送命令并执行

7、再次进入会话 tmux a -t demo看到上述命令执行结果为2

请问在会话外部如何获取ps一行命令执行的结果0/2呢?

问题场景:编写shell脚本,创建tmux会话,并向会话发送命令,要根据命令执行结果判断后续操作

如何在shell脚本中获取tmux send发送命令的执行结果呢?

浏览 (614)
点赞 (3)
收藏
2条评论
大喵喵酱
大喵喵酱
厉害啊。
点赞
评论
Akira
Akira
You need -p to send to stdout, so capture-pane -p -S- -E- will capture the entire pane, look at https://man.openbsd.org/OpenBSD-current/man1/tmux.1#capture-pane.
点赞
评论