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

时间:2011-08-13 19:09:45

标签: macos bash shell terminal applescript

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

如何有条理地运行正确的脚本?我怎么知道这两个中的哪一个正在使用或打开?

4 个答案:

答案 0 :(得分:7)

我不知道如何区分iTerm和iTerm2,但检查$TERM_PROGRAM envar。对我来说(Mac OS X 10.7),它会为Apple_Terminal返回Terminal.app,为iTerm2返回iTerm.app

答案 1 :(得分:0)

在Ubuntu和Mint Linux上正常工作-

ps -o comm = -p“ $((($(ps -o ppid = -p” $(($(ps -o sid = -p“ $$”)))))))“)

答案 2 :(得分:-2)

你应该能够:

ps -p $$ | tail -1 | awk '{print $NF}'

答案 3 :(得分:-2)

我意识到这听起来很讽刺,虽然为什么他们不能将“x-terminal-emulator”的功能称为“飞 - 小鸟”?

我使用Linux。一旦我在bash中执行“x-terminal-emulator”函数调用,该终端就消失了。我的脚本无法访问。

我的观点是,bash需要更多功能才能实现全部功能。效用。 “x-terminal-emulator -attach-to-pid = TERMINAL_NAME”的功能就可以了。

我认为这是对功能和监督的疏忽效用。 他们可以“修复它”。 :/