uninstall.sh 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #!/bin/bash
  2. # ==========================================
  3. # QingJian Client 卸载清理脚本 (Linux)
  4. # ==========================================
  5. # [安全检查] 防止 $HOME 变量为空导致灾难性删除
  6. if [ -z "$HOME" ]; then
  7. echo "[错误] \$HOME 环境变量未定义,终止执行!"
  8. exit 1
  9. fi
  10. # 1. 强制关闭应用进程
  11. echo "[1/2] 正在终止 qingjian-client 进程..."
  12. pkill -9 -f "qingjian-client" 2>/dev/null
  13. pkill_exit_code=$?
  14. if [ $pkill_exit_code -eq 0 ]; then
  15. echo " 进程已终止。"
  16. # 等待进程完全释放文件句柄
  17. sleep 2
  18. elif [ $pkill_exit_code -eq 1 ]; then
  19. echo " 未发现运行中的进程或已提前退出。"
  20. else
  21. echo " [警告] 尝试终止进程时发生未知错误(错误码: $pkill_exit_code)。"
  22. fi
  23. # 2. 递归删除自定义数据目录
  24. echo "[2/2] 正在清理用户数据目录..."
  25. # 定义需要清理的目录列表
  26. DIRS=(
  27. "$HOME/.config/qingjian-client"
  28. "$HOME/.local/share/QingJian"
  29. "$HOME/.qingjian-client"
  30. )
  31. # 遍历并删除目录
  32. for dir in "${DIRS[@]}"; do
  33. if [ -d "$dir" ]; then
  34. rm -rf "$dir"
  35. if [ $? -eq 0 ]; then
  36. echo " 已删除: $dir"
  37. else
  38. echo " [失败] 无法删除: $dir (可能存在权限问题或文件被占用)"
  39. fi
  40. else
  41. echo " 跳过(不存在): $dir"
  42. fi
  43. done
  44. echo ""
  45. echo "✔ 清理完成!"