#!/bin/bash # 自动为 Xinference 设置别名到 Shell 配置文件 ENV_NAME="xinference" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" echo "=========================================" echo " 设置 Xinference 快捷别名" echo "=========================================" echo "" # 检测 Shell 类型 if [ -n "$ZSH_VERSION" ]; then SHELL_CONFIG="$HOME/.zshrc" SHELL_NAME="zsh" elif [ -n "$BASH_VERSION" ]; then SHELL_CONFIG="$HOME/.bashrc" SHELL_NAME="bash" else echo "⚠️ 无法检测 Shell 类型,请手动添加别名" exit 1 fi echo "检测到 Shell: $SHELL_NAME" echo "配置文件: $SHELL_CONFIG" echo "" # 别名内容 ALIAS_CONTENT=" # Xinference 环境快捷命令 alias xinference-env='source ${SCRIPT_DIR}/activate.sh' alias xinference-activate='conda activate ${ENV_NAME}' alias xinference-cd='cd ${SCRIPT_DIR}' " # 检查是否已存在 if grep -q "xinference-env" "$SHELL_CONFIG" 2>/dev/null; then echo "⚠️ 别名已存在于 $SHELL_CONFIG" read -p "是否重新添加? (y/N): " -n 1 -r echo if [[ ! $REPLY =~ ^[Yy]$ ]]; then echo "跳过设置" exit 0 fi # 删除旧的别名 sed -i '/# Xinference 环境快捷命令/,/xinference-cd/d' "$SHELL_CONFIG" fi # 添加别名 echo "" >> "$SHELL_CONFIG" echo "$ALIAS_CONTENT" >> "$SHELL_CONFIG" echo "✅ 别名已添加到 $SHELL_CONFIG" echo "" echo "=========================================" echo " 可用快捷命令" echo "=========================================" echo "" echo " 1. xinference-env - 激活环境并切换到目录" echo " 2. xinference-activate - 仅激活环境" echo " 3. xinference-cd - 切换到 Xinference 目录" echo "" echo "=========================================" echo " 使配置生效" echo "=========================================" echo "" echo "运行以下命令使配置生效:" echo "" echo " source $SHELL_CONFIG" echo "" echo "或者重新打开终端" echo "" echo "然后就可以直接使用 xinference-env 命令了!" echo ""