问题描述
我有一个独立的tmux会话,该会话启动一个程序,该程序需要几分钟才能完全启动。一旦启动,它将在程序内提供提示,该提示可以运行特定于该程序的某些命令。当出现该提示时,我想输入一个特定的命令。我知道我可以使用send-keys发送击键,因此问题归结为确定该shell会话中当前行的内容何时是程序的提示。
请注意,从外壳程序的角度来看,没有任何事情可以“停止运行”,因此,仅检查当前外壳程序命令是否已完成的任何方法都将无法正常工作。
我该怎么做?
解决方法
看来capture-pane是答案。将当前窗格写入日志文件,然后使用grep -q “<prompt>” ./tmux.log
查找当前行。 (这假设搜索的文本只有一行,在我的特定用例中是正确的。)