我有一个在 Vte.Terminal 小部件中运行的 shell(可以是 bash、zsh 或任何其他交互式 shell),我想监视它以便知道提示何时可用并且可以启动新命令。
我似乎无法想出一个一致的方法。
以下是我到目前为止想到的想法:
- 监视子进程退出。
有时可以工作,但仅使用内置命令的命令不会产生子代。(例如:“while true; do; echo test; done;”)此外,当命令在后台启动时,提示将在子退出之前可用。 - 注意 Vte 输出中的提示字符串。
两个问题: 1. 一个简单的提示字符串,如“#>”,很容易被某些脚本输出并给出误报。2. 知道提示字符串是什么是有问题的。
还有其他想法或方法可以使上述其中一项工作吗?
我的目的是什么。
我正在开发终端模拟器,并希望根据提示是否可用来更改图标。此外,我正在尝试允许命令在下次可能时“排队”运行。