Tha*_*tos 8 terminal.app iterm2 macos
不要说“ $TERM
”——它总是xterm
。
bash
脚本如何知道它在哪个终端上运行,特别是它是 iTerm、Terminal.app 还是实际上是 xterm?
我问是因为reset
在 Terminal.app 和 iTerm2 上不能立即使用¹。但是,iTerm2 确实可以识别用于执行终端重置 ( \x1b]50;ClearScrollback\x07
)的转义序列,并且如果我能检测到它,我可以reset
使用执行正确操作的别名进行覆盖。AFAICT,Terminal.app 缺乏重置序列,人们诉诸荒谬的 tom-hackery 来破解它。
我的最终目标是,reset
无论我是在 OS X 还是 Linux 上工作,在本地工作还是通过 SSH 远程工作,都能实现相同的工作。(我不想必须尝试记住哪个,并且这样做很有用,reset && command-that-outputs-a-bunch
并且有向上输入的工作。)Terminal.app 和 iTerm 由于没有reset
正确实施而在这个计划中投入了扳手。
这意味着简单地覆盖reset
还不够:如果我在 Linux 机器上,它需要知道我是使用gnome-terminal
还是 iTerm 以发送正确的转义序列。
有什么办法(即使我需要一个ioctl
)询问终端是什么真的是?
¹出于此问题的目的,重置应清除屏幕、重置光标并擦除回滚缓冲区。
Dan*_*eck 10
使用$TERM_PROGRAM
.
iTerm 将其设置为iTerm.app
,并将 Terminal.app 设置为Apple_Terminal
。
归档时间: |
|
查看次数: |
1109 次 |
最近记录: |