我有一个脚本可以在OS X终端应用程序中打开一个新标签页,现在想添加对iTerm2的支持。不幸的是,这两个终端模拟器打开标签页的方法不同。
我该如何判断当前使用或打开的是哪个终端模拟器,以便有条件地运行正确的脚本呢?
我有一个脚本可以在OS X终端应用程序中打开一个新标签页,现在想添加对iTerm2的支持。不幸的是,这两个终端模拟器打开标签页的方法不同。
我该如何判断当前使用或打开的是哪个终端模拟器,以便有条件地运行正确的脚本呢?
我不确定如何区分iTerm和iTerm2,但请检查$TERM_PROGRAM
环境变量。对于我而言(Mac OS X 10.7),它返回Terminal.app
的Apple_Terminal
,并且返回iTerm2的iTerm.app
。
在Ubuntu和Mint Linux上工作良好--
ps -o comm= -p "$(($(ps -o ppid= -p "$(($(ps -o sid= -p "$$")))")))"
ps: sid: 关键字未找到\n ps: 无效的关键字;有效的关键字:\n zsh: 错误的数学表达式:需要操作数 \
%cpu %mem ...'` - iconoclast$ ps -o sid= -p "$$" | xargs ps -o ppid= -p | xargs ps -o comm= -p
- ack你应该能够:
ps -p $$ | tail -1 | awk '{print $NF}'
$TERM
不同? - Keith Thompson$TERM
不同,那可能是一个解决办法(尽管我本可以表达得更好)。 - Keith Thompson$TERM
不同?”上面的评论是对那个答案的评论,如果没有上下文,它就没有太多意义。 - Keith Thompson$TERM
不同?”现在是一条注释(可能我之前没有注意到)。大概过一天左右,我会删除大部分这些注释。 - Keith Thompson