iTerm2 python api 清空会话当前行后执行命令

1. 问题:

在选择已有会话执行命令时,如果当前会话有用户手动输入,会造成命令执行失败,此时需要删除用户以后输入后执行命令。

2. 解决方法

在执行命令前添加退格转义序列符 \b

注:\b 的 ascii 码 10 进制为 8。

3. 代码示例

# 计算退格数
screen_content = await session.async_get_screen_contents()
current_line = screen_content.line(screen_content.number_of_lines - 1)

# 此处退格数多了没关系
backspaces = '\b' * len(current_line.string)

 # 在会话中执行命令,命令会随着会话结束(tab 关闭, window关闭)而终止
await session.async_run_coprocess(command_line="echo '{}{}'".format(backspaces, command))

4. 参考链接

转义序列符

你可能感兴趣的:(iTerm2 python api 清空会话当前行后执行命令)