如何从bash脚本中识别当前的终端模拟器?

jon*_*ick 6 macos bash shell terminal applescript

我有一个脚本将在OS X终端应用程序中打开一个新选项卡,我正在尝试添加对iTerm2的支持.不幸的是,在两个终端仿真器中打开选项卡的方法是不同的.

如何有条理地运行正确的脚本,我如何判断正在使用或打开哪两个?

小智 8

我不确定如何区分iTerm和iTerm2,但检查$TERM_PROGRAMenvar.对我(的Mac OS X 10.7),它返回Apple_TerminalTerminal.app,并iTerm.app为iTerm2.


小智 5

在 Ubuntu 和 mint Linux 上运行良好--

ps -o comm= -p "$(($(ps -o ppid= -p "$(($(ps -o sid= -p "$$")))")))"
Run Code Online (Sandbox Code Playgroud)

  • 这适用于我的 Arch + alacritty + zsh。不过,如果能进一步解释这个魔法就太好了:) (2认同)