macOS下如何获取启动终端实例的JetBrains IDE应用程序路径?
在macOS从JetBrains集成终端获取IDE路径的方法
如果你是从JetBrains IDE的内置终端运行脚本,可以通过追溯进程父层级来动态获取启动终端的IDE路径,完全不用硬编码。下面是两种可靠的实现方式:
方法1:递归查找父进程(无需额外工具)
直接用系统自带的ps命令,从当前终端PID往上遍历父进程,直到定位到JetBrains IDE的主进程,然后提取它的路径:
current_pid=$$ while true; do # 获取当前进程的父PID parent_pid=$(ps -o ppid= -p "$current_pid" | tr -d ' ') # 到达根进程就停止 if [ "$parent_pid" -eq 0 ]; then break fi # 获取父进程名称 process_name=$(ps -o comm= -p "$parent_pid") # 匹配常见JetBrains IDE的进程名,可根据团队使用的IDE补充 if [[ "$process_name" =~ ^(idea|WebStorm|PyCharm|PhpStorm|CLion|RubyMine|DataGrip|GoLand|AndroidStudio)$ ]]; then # 提取IDE的完整路径 ide_path=$(ps -o path= -p "$parent_pid") echo "找到IDE路径:$ide_path" exit 0 fi current_pid="$parent_pid" done echo "未检测到JetBrains IDE进程"
方法2:用pstree快速过滤(需安装pstree)
如果你的团队成员都安装了Homebrew,可以先装pstree(brew install pstree),然后用以下命令直接从进程树中提取IDE路径:
pstree -s -l $$ | grep -o '/Applications/.*\.app' | head -n 1
这个命令会直接输出第一个匹配的JetBrains IDE应用路径(默认IDE都安装在/Applications下,以.app结尾),适合快速获取。
注意事项
- 进程名匹配可以根据团队实际使用的IDE扩展,比如添加
Rider这类不常用的IDE名称。 - 不管IDE安装在默认路径还是自定义位置,方法1都能准确获取路径,因为它直接从进程信息中读取。
内容的提问来源于stack exchange,提问作者Ricola
相关产品推荐
相关产品推荐

