{"id":4546,"date":"2021-03-24T17:41:22","date_gmt":"2021-03-24T09:41:22","guid":{"rendered":"https:\/\/yanjingang.com\/blog\/?p=4546"},"modified":"2021-03-25T21:34:11","modified_gmt":"2021-03-25T13:34:11","slug":"homebrew%e5%9b%bd%e5%86%85%e8%87%aa%e5%8a%a8%e5%ae%89%e8%a3%85","status":"publish","type":"post","link":"https:\/\/yanjingang.com\/blog\/?p=4546","title":{"rendered":"Mac Homebrew\u56fd\u5185\u955c\u50cf\u81ea\u52a8\u5b89\u88c5\u811a\u672c"},"content":{"rendered":"<p>\u5b98\u7f51\u7684\u5b89\u88c5\u603b\u662f\u56e0\u4e3a\u5404\u79cd\u5899\u5b89\u88c5\u5931\u8d25\uff0c\u7528\u56fd\u5185\u8fd9\u4e2a\u5730\u5740\u5f88\u597d\u7528\uff1a<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"\"># \u4e00\u952e\u5b89\u88c5\r\n\/bin\/zsh -c \"$(curl -fsSL https:\/\/gitee.com\/cunkai\/HomebrewCN\/raw\/master\/Homebrew.sh)\"\r\n\r\n\r\n# Homebrew.sh\u811a\u672c\u6e90\u7801\r\n\r\n#HomeBrew\u81ea\u52a8\u5b89\u88c5\u811a\u672c\r\n#cunkai.wang@foxmail.com\r\n\r\n#\u83b7\u53d6\u786c\u4ef6\u4fe1\u606f\r\nUNAME_MACHINE=\"$(uname -m)\"\r\n#\u5728X86\u7535\u8111\u4e0a\u6d4b\u8bd5arm\u7535\u8111\r\n# UNAME_MACHINE=\"arm64\"\r\n\r\n# \u5224\u65ad\u662fLinux\u8fd8\u662fMac os\r\nOS=\"$(uname)\"\r\nif [[ \"$OS\" == \"Linux\" ]]; then\r\n  HOMEBREW_ON_LINUX=1\r\nelif [[ \"$OS\" != \"Darwin\" ]]; then\r\n  echo \"Homebrew \u53ea\u8fd0\u884c\u5728 Mac OS \u6216 Linux.\"\r\nfi\r\n\r\n# \u5b57\u7b26\u4e32\u67d3\u8272\u7a0b\u5e8f\r\nif [[ -t 1 ]]; then\r\n  tty_escape() { printf \"\\033[%sm\" \"$1\"; }\r\nelse\r\n  tty_escape() { :; }\r\nfi\r\ntty_universal() { tty_escape \"0;$1\"; } #\u6b63\u5e38\u663e\u793a\r\ntty_mkbold() { tty_escape \"1;$1\"; } #\u8bbe\u7f6e\u9ad8\u4eae\r\ntty_underline=\"$(tty_escape \"4;39\")\" #\u4e0b\u5212\u7ebf\r\ntty_blue=\"$(tty_universal 34)\" #\u84dd\u8272\r\ntty_red=\"$(tty_universal 31)\" #\u7ea2\u8272\r\ntty_green=\"$(tty_universal 32)\" #\u7eff\u8272\r\ntty_yellow=\"$(tty_universal 33)\" #\u9ec4\u8272\r\ntty_bold=\"$(tty_universal 39)\" #\u52a0\u9ed1\r\ntty_cyan=\"$(tty_universal 36)\" #\u9752\u8272\r\ntty_reset=\"$(tty_escape 0)\" #\u53bb\u9664\u989c\u8272\r\n\r\n#\u7528\u6237\u8f93\u5165\u6781\u901f\u5b89\u88c5speed\uff0cgit\u514b\u9686\u53ea\u53d6\u6700\u8fd1\u65b0\u7248\u672c\r\n#\u4f46\u662fupdate\u4f1a\u51fa\u9519\uff0c\u63d0\u793a\u9700\u8981\u4e0b\u8f7d\u5168\u90e8\u6570\u636e\r\nGIT_SPEED=\"\"\r\n\r\nif [[ $0 == \"speed\" ]]; then\r\n  GIT_SPEED=\"--depth=1\"\r\nelse\r\n  for dir in $@; do\r\n      echo $dir\r\n      if [[ $dir == \"speed\" ]]; then\r\n          GIT_SPEED=\"--depth=1\"\r\n      fi\r\n  done\r\nfi\r\n\r\nif [[ $GIT_SPEED != \"\" ]]; then\r\necho \"${tty_red}\r\n              \u68c0\u6d4b\u5230\u53c2\u6570speed\uff0c\u53ea\u62c9\u53d6\u6700\u65b0\u6570\u636e\uff0c\u53ef\u4ee5\u6b63\u5e38install\u4f7f\u7528\uff01\r\n          \u4f46\u662f\u4ee5\u540ebrew update\u7684\u65f6\u5019\u4f1a\u62a5\u9519\uff0c\u8fd0\u884c\u62a5\u9519\u63d0\u793a\u7684\u4e24\u53e5\u547d\u4ee4\u5373\u53ef\u4fee\u590d\r\n          ${tty_reset}\"\r\nfi\r\n\r\n#\u83b7\u53d6\u524d\u9762\u4e24\u4e2a.\u7684\u6570\u636e\r\nmajor_minor() {\r\n  echo \"${1%%.*}.$(x=\"${1#*.}\"; echo \"${x%%.*}\")\"\r\n}\r\n\r\n#\u8bbe\u7f6e\u4e00\u4e9b\u5e73\u53f0\u5730\u5740\r\nif [[ -z \"${HOMEBREW_ON_LINUX-}\" ]]; then\r\n    #Mac\r\n    if [[ \"$UNAME_MACHINE\" == \"arm64\" ]]; then\r\n    #M1\r\n    HOMEBREW_PREFIX=\"\/opt\/homebrew\"\r\n    HOMEBREW_REPOSITORY=\"${HOMEBREW_PREFIX}\"\r\n    else\r\n    #Inter\r\n    HOMEBREW_PREFIX=\"\/usr\/local\"\r\n    HOMEBREW_REPOSITORY=\"${HOMEBREW_PREFIX}\/Homebrew\"\r\n    fi\r\n\r\n    HOMEBREW_CACHE=\"${HOME}\/Library\/Caches\/Homebrew\"\r\n    HOMEBREW_LOGS=\"${HOME}\/Library\/Logs\/Homebrew\"\r\n    \r\n    #\u56fd\u5185\u6ca1\u6709homebrew-services\uff0c\u624b\u52a8\u5728gitee\u521b\u5efa\u4e86\u4e00\u4e2a\uff0c\u6709\u5c11\u6570\u4eba\u7528\u5230\u3002\r\n    USER_SERVICES_GIT=https:\/\/gitee.com\/cunkai\/homebrew-services.git\r\n\r\n    STAT=\"stat -f\"\r\n    CHOWN=\"\/usr\/sbin\/chown\"\r\n    CHGRP=\"\/usr\/bin\/chgrp\"\r\n    GROUP=\"admin\"\r\n    TOUCH=\"\/usr\/bin\/touch\"\r\n\r\n    #\u83b7\u53d6Mac\u7cfb\u7edf\u7248\u672c\r\n    macos_version=\"$(major_minor \"$(\/usr\/bin\/sw_vers -productVersion)\")\"\r\nelse\r\n  #Linux\r\n  UNAME_MACHINE=\"$(uname -m)\"\r\n\r\n  HOMEBREW_PREFIX=\"\/home\/linuxbrew\/.linuxbrew\"\r\n  HOMEBREW_REPOSITORY=\"${HOMEBREW_PREFIX}\/Homebrew\"\r\n\r\n  HOMEBREW_CACHE=\"${HOME}\/.cache\/Homebrew\"\r\n  HOMEBREW_LOGS=\"${HOME}\/.logs\/Homebrew\"\r\n\r\n  STAT=\"stat --printf\"\r\n  CHOWN=\"\/bin\/chown\"\r\n  CHGRP=\"\/bin\/chgrp\"\r\n  GROUP=\"$(id -gn)\"\r\n  TOUCH=\"\/bin\/touch\"\r\nfi\r\n\r\n\r\n\r\n#\u83b7\u53d6\u7cfb\u7edf\u65f6\u95f4\r\nTIME=$(date \"+%Y-%m-%d %H:%M:%S\")\r\n\r\nJudgeSuccess()\r\n{\r\n    if [ $? -ne 0 ];then\r\n        echo \"${tty_red}m\u6b64\u6b65\u9aa4\u5931\u8d25 '$1'${tty_reset}\"\r\n        if [[ \"$2\" == 'out' ]]; then\r\n          exit 0\r\n        fi\r\n    else\r\n        echo \"${tty_green}\u6b64\u6b65\u9aa4\u6210\u529f${tty_reset}\"\r\n\r\n    fi\r\n}\r\n# \u5224\u65ad\u662f\u5426\u6709\u7cfb\u7edf\u6743\u9650\r\nhave_sudo_access() {\r\n  if [[ -z \"${HAVE_SUDO_ACCESS-}\" ]]; then\r\n    \/usr\/bin\/sudo -l mkdir &amp;&gt;\/dev\/null\r\n    HAVE_SUDO_ACCESS=\"$?\"\r\n  fi\r\n\r\n  if [[ \"$HAVE_SUDO_ACCESS\" -ne 0 ]]; then\r\n    echo \"${tty_red}\u5f00\u673a\u5bc6\u7801\u8f93\u5165\u9519\u8bef\uff0c\u83b7\u53d6\u6743\u9650\u5931\u8d25!${tty_reset}\"\r\n  fi\r\n\r\n  return \"$HAVE_SUDO_ACCESS\"\r\n}\r\n\r\n\r\nabort() {\r\n  printf \"%s\\n\" \"$1\"\r\n  # exit 1\r\n}\r\n\r\nshell_join() {\r\n  local arg\r\n  printf \"%s\" \"$1\"\r\n  shift\r\n  for arg in \"$@\"; do\r\n    printf \" \"\r\n    printf \"%s\" \"${arg\/\/ \/\\ }\"\r\n  done\r\n}\r\n\r\nexecute() {\r\n  if ! \"$@\"; then\r\n    abort \"$(printf \"${tty_red}\u6b64\u547d\u4ee4\u8fd0\u884c\u5931\u8d25: %s${tty_reset}\" \"$(shell_join \"$@\")\")\"\r\n  fi\r\n}\r\n\r\n\r\n\r\nohai() {\r\n  printf \"${tty_blue}\u8fd0\u884c\u4ee3\u7801 ==&gt;${tty_bold} %s${tty_reset}\\n\" \"$(shell_join \"$@\")\"\r\n}\r\n\r\n# \u7ba1\u7406\u5458\u8fd0\u884c\r\nexecute_sudo() \r\n{\r\n\r\n  local -a args=(\"$@\")\r\n  if have_sudo_access; then\r\n    if [[ -n \"${SUDO_ASKPASS-}\" ]]; then\r\n      args=(\"-A\" \"${args[@]}\")\r\n    fi\r\n    ohai \"\/usr\/bin\/sudo\" \"${args[@]}\"\r\n    execute \"\/usr\/bin\/sudo\" \"${args[@]}\"\r\n  else\r\n    ohai \"${args[@]}\"\r\n    execute \"${args[@]}\"\r\n  fi\r\n}\r\n#\u6dfb\u52a0\u6587\u4ef6\u5939\u6743\u9650\r\nAddPermission()\r\n{\r\n  execute_sudo \"\/bin\/chmod\" \"-R\" \"a+rwx\" \"$1\"\r\n  execute_sudo \"$CHOWN\" \"$USER\" \"$1\"\r\n  execute_sudo \"$CHGRP\" \"$GROUP\" \"$1\"\r\n}\r\n#\u521b\u5efa\u6587\u4ef6\u5939\r\nCreateFolder()\r\n{\r\n    echo '-&gt; \u521b\u5efa\u6587\u4ef6\u5939' $1\r\n    execute_sudo \"\/bin\/mkdir\" \"-p\" \"$1\"\r\n    JudgeSuccess\r\n    AddPermission $1\r\n}\r\n\r\nRmAndCopy()\r\n{\r\n  if [[ -d $1 ]]; then\r\n    echo \"  ---\u5907\u4efd\u8981\u5220\u9664\u7684$1\u5230\u7cfb\u7edf\u684c\u9762....\"\r\n    if ! [[ -d $HOME\/Desktop\/Old_Homebrew\/$TIME\/$1 ]]; then\r\n      sudo mkdir -p \"$HOME\/Desktop\/Old_Homebrew\/$TIME\/$1\"\r\n    fi\r\n    sudo cp -rf $1 \"$HOME\/Desktop\/Old_Homebrew\/$TIME\/$1\"\r\n    echo \"   ---$1 \u5907\u4efd\u5b8c\u6210\"\r\n  fi\r\n  sudo rm -rf $1\r\n}\r\n\r\nRmCreate()\r\n{\r\n    RmAndCopy $1\r\n    CreateFolder $1\r\n}\r\n\r\n#\u5224\u65ad\u6587\u4ef6\u5939\u5b58\u5728\u4f46\u4e0d\u53ef\u5199\r\nexists_but_not_writable() {\r\n  [[ -e \"$1\" ]] &amp;&amp; ! [[ -r \"$1\" &amp;&amp; -w \"$1\" &amp;&amp; -x \"$1\" ]]\r\n}\r\n#\u6587\u4ef6\u6240\u6709\u8005\r\nget_owner() {\r\n  $(shell_join \"$STAT %u $1\" )\r\n}\r\n#\u6587\u4ef6\u672c\u4eba\u65e0\u6743\u9650\r\nfile_not_owned() {\r\n  [[ \"$(get_owner \"$1\")\" != \"$(id -u)\" ]]\r\n}\r\n#\u83b7\u53d6\u6240\u5c5e\u7684\u7ec4\r\nget_group() {\r\n  $(shell_join \"$STAT %g $1\" )\r\n}\r\n#\u4e0d\u5728\u6240\u5c5e\u7ec4\r\nfile_not_grpowned() {\r\n  [[ \" $(id -G \"$USER\") \" != *\" $(get_group \"$1\") \"*  ]]\r\n}\r\n#\u83b7\u5f97\u5f53\u524d\u6587\u4ef6\u5939\u6743\u9650 \u4f8b\u5982777\r\nget_permission() {\r\n  $(shell_join \"$STAT %A $1\" )\r\n}\r\n#\u6388\u6743\u5f53\u524d\u7528\u6237\u6743\u9650\r\nuser_only_chmod() {\r\n  [[ -d \"$1\" ]] &amp;&amp; [[ \"$(get_permission \"$1\")\" != \"755\" ]]\r\n}\r\n\r\n\r\n#\u521b\u5efabrew\u9700\u8981\u7684\u76ee\u5f55 \u76f4\u63a5\u590d\u5236\u4e8e\u56fd\u5916\u7248\u672c\uff0c\u540c\u6b65\r\nCreateBrewLinkFolder()\r\n{\r\n  echo \"--\u521b\u5efaBrew\u6240\u9700\u8981\u7684\u76ee\u5f55\"\r\n  directories=(bin etc include lib sbin share opt var\r\n             Frameworks\r\n             etc\/bash_completion.d lib\/pkgconfig\r\n             share\/aclocal share\/doc share\/info share\/locale share\/man\r\n             share\/man\/man1 share\/man\/man2 share\/man\/man3 share\/man\/man4\r\n             share\/man\/man5 share\/man\/man6 share\/man\/man7 share\/man\/man8\r\n             var\/log var\/homebrew var\/homebrew\/linked\r\n             bin\/brew)\r\n  group_chmods=()\r\n  for dir in \"${directories[@]}\"; do\r\n    if exists_but_not_writable \"${HOMEBREW_PREFIX}\/${dir}\"; then\r\n      group_chmods+=(\"${HOMEBREW_PREFIX}\/${dir}\")\r\n    fi\r\n  done\r\n\r\n  directories=(share\/zsh share\/zsh\/site-functions)\r\n  zsh_dirs=()\r\n  for dir in \"${directories[@]}\"; do\r\n    zsh_dirs+=(\"${HOMEBREW_PREFIX}\/${dir}\")\r\n  done\r\n\r\n  directories=(bin etc include lib sbin share var opt\r\n              share\/zsh share\/zsh\/site-functions\r\n              var\/homebrew var\/homebrew\/linked\r\n              Cellar Caskroom Frameworks)\r\n  mkdirs=()\r\n  for dir in \"${directories[@]}\"; do\r\n    if ! [[ -d \"${HOMEBREW_PREFIX}\/${dir}\" ]]; then\r\n      mkdirs+=(\"${HOMEBREW_PREFIX}\/${dir}\")\r\n    fi\r\n  done\r\n\r\n  user_chmods=()\r\n  if [[ \"${#zsh_dirs[@]}\" -gt 0 ]]; then\r\n    for dir in \"${zsh_dirs[@]}\"; do\r\n      if user_only_chmod \"${dir}\"; then\r\n        user_chmods+=(\"${dir}\")\r\n      fi\r\n    done\r\n  fi\r\n\r\n  chmods=()\r\n  if [[ \"${#group_chmods[@]}\" -gt 0 ]]; then\r\n    chmods+=(\"${group_chmods[@]}\")\r\n  fi\r\n  if [[ \"${#user_chmods[@]}\" -gt 0 ]]; then\r\n    chmods+=(\"${user_chmods[@]}\")\r\n  fi\r\n\r\n  chowns=()\r\n  chgrps=()\r\n  if [[ \"${#chmods[@]}\" -gt 0 ]]; then\r\n    for dir in \"${chmods[@]}\"; do\r\n      if file_not_owned \"${dir}\"; then\r\n        chowns+=(\"${dir}\")\r\n      fi\r\n      if file_not_grpowned \"${dir}\"; then\r\n        chgrps+=(\"${dir}\")\r\n      fi\r\n    done\r\n  fi\r\n\r\n  if [[ -d \"${HOMEBREW_PREFIX}\" ]]; then\r\n    if [[ \"${#chmods[@]}\" -gt 0 ]]; then\r\n      execute_sudo \"\/bin\/chmod\" \"u+rwx\" \"${chmods[@]}\"\r\n    fi\r\n    if [[ \"${#group_chmods[@]}\" -gt 0 ]]; then\r\n      execute_sudo \"\/bin\/chmod\" \"g+rwx\" \"${group_chmods[@]}\"\r\n    fi\r\n    if [[ \"${#user_chmods[@]}\" -gt 0 ]]; then\r\n      execute_sudo \"\/bin\/chmod\" \"755\" \"${user_chmods[@]}\"\r\n    fi\r\n    if [[ \"${#chowns[@]}\" -gt 0 ]]; then\r\n      execute_sudo \"$CHOWN\" \"$USER\" \"${chowns[@]}\"\r\n    fi\r\n    if [[ \"${#chgrps[@]}\" -gt 0 ]]; then\r\n      execute_sudo \"$CHGRP\" \"$GROUP\" \"${chgrps[@]}\"\r\n    fi\r\n  else\r\n    execute_sudo \"\/bin\/mkdir\" \"-p\" \"${HOMEBREW_PREFIX}\"\r\n    if [[ -z \"${HOMEBREW_ON_LINUX-}\" ]]; then\r\n      execute_sudo \"$CHOWN\" \"root:wheel\" \"${HOMEBREW_PREFIX}\"\r\n    else\r\n      execute_sudo \"$CHOWN\" \"$USER:$GROUP\" \"${HOMEBREW_PREFIX}\"\r\n    fi\r\n  fi\r\n\r\n  if [[ \"${#mkdirs[@]}\" -gt 0 ]]; then\r\n    execute_sudo \"\/bin\/mkdir\" \"-p\" \"${mkdirs[@]}\"\r\n    execute_sudo \"\/bin\/chmod\" \"g+rwx\" \"${mkdirs[@]}\"\r\n    execute_sudo \"$CHOWN\" \"$USER\" \"${mkdirs[@]}\"\r\n    execute_sudo \"$CHGRP\" \"$GROUP\" \"${mkdirs[@]}\"\r\n  fi\r\n\r\n  if ! [[ -d \"${HOMEBREW_REPOSITORY}\" ]]; then\r\n    execute_sudo \"\/bin\/mkdir\" \"-p\" \"${HOMEBREW_REPOSITORY}\"\r\n  fi\r\n  execute_sudo \"$CHOWN\" \"-R\" \"$USER:$GROUP\" \"${HOMEBREW_REPOSITORY}\"\r\n\r\n  if ! [[ -d \"${HOMEBREW_CACHE}\" ]]; then\r\n    if [[ -z \"${HOMEBREW_ON_LINUX-}\" ]]; then\r\n      execute_sudo \"\/bin\/mkdir\" \"-p\" \"${HOMEBREW_CACHE}\"\r\n    else\r\n      execute \"\/bin\/mkdir\" \"-p\" \"${HOMEBREW_CACHE}\"\r\n    fi\r\n  fi\r\n  if exists_but_not_writable \"${HOMEBREW_CACHE}\"; then\r\n    execute_sudo \"\/bin\/chmod\" \"g+rwx\" \"${HOMEBREW_CACHE}\"\r\n  fi\r\n  if file_not_owned \"${HOMEBREW_CACHE}\"; then\r\n    execute_sudo \"$CHOWN\" \"-R\" \"$USER\" \"${HOMEBREW_CACHE}\"\r\n  fi\r\n  if file_not_grpowned \"${HOMEBREW_CACHE}\"; then\r\n    execute_sudo \"$CHGRP\" \"-R\" \"$GROUP\" \"${HOMEBREW_CACHE}\"\r\n  fi\r\n  if [[ -d \"${HOMEBREW_CACHE}\" ]]; then\r\n    execute \"$TOUCH\" \"${HOMEBREW_CACHE}\/.cleaned\"\r\n  fi\r\n  echo \"--\u4f9d\u8d56\u76ee\u5f55\u811a\u672c\u8fd0\u884c\u5b8c\u6210\"\r\n}\r\n\r\n#git\u63d0\u4ea4\r\ngit_commit(){\r\n    git add .\r\n    git commit -m \"your del\"\r\n}\r\n\r\n#version_gt \u5224\u65ad$1\u662f\u5426\u5927\u4e8e$2\r\nversion_gt() {\r\n  [[ \"${1%.*}\" -gt \"${2%.*}\" ]] || [[ \"${1%.*}\" -eq \"${2%.*}\" &amp;&amp; \"${1#*.}\" -gt \"${2#*.}\" ]]\r\n}\r\n#version_ge \u5224\u65ad$1\u662f\u5426\u5927\u4e8e\u7b49\u4e8e$2\r\nversion_ge() {\r\n  [[ \"${1%.*}\" -gt \"${2%.*}\" ]] || [[ \"${1%.*}\" -eq \"${2%.*}\" &amp;&amp; \"${1#*.}\" -ge \"${2#*.}\" ]]\r\n}\r\n#version_lt \u5224\u65ad$1\u662f\u5426\u5c0f\u4e8e$2\r\nversion_lt() {\r\n  [[ \"${1%.*}\" -lt \"${2%.*}\" ]] || [[ \"${1%.*}\" -eq \"${2%.*}\" &amp;&amp; \"${1#*.}\" -lt \"${2#*.}\" ]]\r\n}\r\n\r\n#\u53d1\u73b0\u9519\u8bef \u5173\u95ed\u811a\u672c \u63d0\u793a\u5982\u4f55\u89e3\u51b3\r\nerror_game_over(){\r\n    echo \"\r\n    ${tty_red}\u5931\u8d25$MY_DOWN_NUM \u53bb\u4e0b\u9762\u6587\u7ae0\u770b\u4e00\u4e0b\u7b2c\u4e8c\u90e8\u5206\u7684\u5e38\u89c1\u9519\u8bef\u89e3\u51b3\u529e\u6cd5\r\n    https:\/\/zhuanlan.zhihu.com\/p\/111014448\r\n    \u5982\u679c\u6ca1\u6709\u89e3\u51b3\uff0c\u628a\u8fd0\u884c\u811a\u672c\u8fc7\u7a0b\u622a\u56fe\u53d1\u5230 cunkai.wang@foxmail.com ${tty_reset}\r\n    \"\r\n\r\n    exit 0\r\n}\r\n\r\n#\u4e00\u4e9b\u8b66\u544a\u5224\u65ad\r\nwarning_if(){\r\n  git_https_proxy=$(git config --global https.proxy)\r\n  git_http_proxy=$(git config --global http.proxy)\r\n  if [[ -z \"$git_https_proxy\"  &amp;&amp;  -z \"$git_http_proxy\" ]]; then\r\n  echo \"\u672a\u53d1\u73b0Git\u4ee3\u7406\uff08\u5c5e\u4e8e\u6b63\u5e38\u72b6\u6001\uff09\"\r\n  else\r\n  echo \"${tty_yellow}\r\n      \u63d0\u793a\uff1a\u53d1\u73b0\u4f60\u7535\u8111\u8bbe\u7f6e\u4e86Git\u4ee3\u7406\uff0c\u5982\u679cGit\u62a5\u9519\uff0c\u8bf7\u8fd0\u884c\u4e0b\u9762\u4e24\u53e5\u8bdd\uff1a\r\n\r\n              git config --global --unset https.proxy\r\n\r\n              git config --global --unset http.proxy${tty_reset}\r\n  \"\r\n  fi\r\n}\r\n\r\necho \"\r\n              ${tty_green} \u5f00\u59cb\u6267\u884cBrew\u81ea\u52a8\u5b89\u88c5\u7a0b\u5e8f ${tty_reset}\r\n             ${tty_cyan} [cunkai.wang@foxmail.com] ${tty_reset}\r\n           ['$TIME']['$macos_version']\r\n       ${tty_cyan} https:\/\/zhuanlan.zhihu.com\/p\/111014448 ${tty_reset}\r\n\"\r\n#\u9009\u62e9\u4e00\u4e2a\u4e0b\u8f7d\u6e90\r\necho -n \"${tty_green}\r\n\u8bf7\u9009\u62e9\u4e00\u4e2a\u4e0b\u8f7d\u955c\u50cf\uff0c\u4f8b\u5982\u4e2d\u79d1\u5927\uff0c\u8f93\u51651\u56de\u8f66\u3002\r\n\u6e90\u6709\u65f6\u5019\u4e0d\u7a33\u5b9a\uff0c\u5982\u679cgit\u514b\u9686\u62a5\u9519\u91cd\u65b0\u8fd0\u884c\u811a\u672c\u9009\u62e9\u6e90\u3002cask\u975e\u5fc5\u987b\uff0c\u6709\u90e8\u5206\u4eba\u9700\u8981\u3002\r\n1\u3001\u4e2d\u79d1\u5927\u4e0b\u8f7d\u6e90 2\u3001\u6e05\u534e\u5927\u5b66\u4e0b\u8f7d\u6e90 3\u3001\u5317\u4eac\u5916\u56fd\u8bed\u5927\u5b66\u4e0b\u8f7d\u6e90 ${tty_reset}\"\r\nif [[ -z \"${HOMEBREW_ON_LINUX-}\" ]]; then\r\n#mac\u624d\u663e\u793a\u817e\u8baf \u963f\u91cc\uff0c\u4ed6\u4eec\u5bf9linux\u76ee\u524d\u652f\u6301\u5f88\u5dee\r\n    echo \"${tty_green} 4\u3001\u817e\u8baf\u4e0b\u8f7d\u6e90\uff08\u4e0d\u63a8\u8350\uff09 5\u3001\u963f\u91cc\u5df4\u5df4\u4e0b\u8f7d\u6e90(\u4e0d\u63a8\u8350 \u7f3a\u5c11cask\u6e90) ${tty_reset} \"\r\nfi\r\necho -n \"\r\n${tty_blue}\u8bf7\u8f93\u5165\u5e8f\u53f7: \"\r\nread MY_DOWN_NUM\r\necho \"${tty_reset}\"\r\ncase $MY_DOWN_NUM in\r\n\"2\")\r\n    echo \"\r\n    \u4f60\u9009\u62e9\u4e86\u6e05\u534e\u5927\u5b66\u4e0b\u8f7d\u6e90\r\n    \"\r\n    if [[ -z \"${HOMEBREW_ON_LINUX-}\" ]]; then\r\n        USER_HOMEBREW_BOTTLE_DOMAIN=https:\/\/mirrors.tuna.tsinghua.edu.cn\/homebrew-bottles\r\n    else\r\n        USER_HOMEBREW_BOTTLE_DOMAIN=https:\/\/mirrors.tuna.tsinghua.edu.cn\/linuxbrew-bottles\/\r\n    fi\r\n    #HomeBrew\u57fa\u7840\u6846\u67b6\r\n    USER_BREW_GIT=https:\/\/mirrors.tuna.tsinghua.edu.cn\/git\/homebrew\/brew.git\r\n    #HomeBrew Core\r\n    if [[ -z \"${HOMEBREW_ON_LINUX-}\" ]]; then\r\n        USER_CORE_GIT=https:\/\/mirrors.tuna.tsinghua.edu.cn\/git\/homebrew\/homebrew-core.git\r\n    else\r\n        USER_CORE_GIT=https:\/\/mirrors.tuna.tsinghua.edu.cn\/git\/homebrew\/linuxbrew-core.git\r\n    fi\r\n    #HomeBrew Cask\r\n    USER_CASK_GIT=https:\/\/mirrors.tuna.tsinghua.edu.cn\/git\/homebrew\/homebrew-cask.git\r\n    USER_CASK_FONTS_GIT=https:\/\/mirrors.tuna.tsinghua.edu.cn\/git\/homebrew\/homebrew-cask-fonts.git\r\n    USER_CASK_DRIVERS_GIT=https:\/\/mirrors.tuna.tsinghua.edu.cn\/git\/homebrew\/homebrew-cask-drivers.git\r\n;;\r\n\"3\")\r\n    echo \"\r\n    \u5317\u4eac\u5916\u56fd\u8bed\u5927\u5b66\u4e0b\u8f7d\u6e90\r\n    \"\r\n    if [[ -z \"${HOMEBREW_ON_LINUX-}\" ]]; then\r\n        USER_HOMEBREW_BOTTLE_DOMAIN=https:\/\/mirrors.tuna.tsinghua.edu.cn\/homebrew-bottles\r\n    else\r\n        USER_HOMEBREW_BOTTLE_DOMAIN=https:\/\/mirrors.tuna.tsinghua.edu.cn\/linuxbrew-bottles\/\r\n    fi\r\n    #HomeBrew\u57fa\u7840\u6846\u67b6\r\n    USER_BREW_GIT=https:\/\/mirrors.bfsu.edu.cn\/git\/homebrew\/brew.git\r\n    #HomeBrew Core\r\n    if [[ -z \"${HOMEBREW_ON_LINUX-}\" ]]; then\r\n        USER_CORE_GIT=https:\/\/mirrors.bfsu.edu.cn\/git\/homebrew\/homebrew-core.git\r\n    else\r\n        USER_CORE_GIT=https:\/\/mirrors.bfsu.edu.cn\/git\/homebrew\/linuxbrew-core.git\r\n    fi\r\n    #HomeBrew Cask\r\n    USER_CASK_GIT=https:\/\/mirrors.bfsu.edu.cn\/git\/homebrew\/homebrew-cask.git\r\n    USER_CASK_FONTS_GIT=https:\/\/mirrors.bfsu.edu.cn\/git\/homebrew\/homebrew-cask-fonts.git\r\n    USER_CASK_DRIVERS_GIT=https:\/\/mirrors.bfsu.edu.cn\/git\/homebrew\/homebrew-cask-drivers.git\r\n;;\r\n\"4\")\r\n    echo \"\r\n    \u4f60\u9009\u62e9\u4e86\u817e\u8baf\u4e0b\u8f7d\u6e90\r\n    \"\r\n    USER_HOMEBREW_BOTTLE_DOMAIN=https:\/\/mirrors.cloud.tencent.com\/homebrew-bottles\r\n    #HomeBrew\u57fa\u7840\u6846\u67b6\r\n    USER_BREW_GIT=https:\/\/mirrors.cloud.tencent.com\/homebrew\/brew.git \r\n    #HomeBrew Core\r\n    if [[ -z \"${HOMEBREW_ON_LINUX-}\" ]]; then\r\n        USER_CORE_GIT=https:\/\/mirrors.cloud.tencent.com\/homebrew\/homebrew-core.git\r\n    else\r\n        USER_CORE_GIT=https:\/\/mirrors.cloud.tencent.com\/homebrew\/linuxbrew-core.git\r\n    fi\r\n    #HomeBrew Cask\r\n    USER_CASK_GIT=https:\/\/mirrors.cloud.tencent.com\/homebrew\/homebrew-cask.git\r\n;;\r\n\"5\")\r\n    echo \"\r\n    \u4f60\u9009\u62e9\u4e86\u963f\u91cc\u5df4\u5df4\u4e0b\u8f7d\u6e90(\u65e0mac\u7684cask\u6e90,\u65e0Linux\u7248\u672c)\r\n    \"\r\n    USER_HOMEBREW_BOTTLE_DOMAIN=https:\/\/mirrors.aliyun.com\/homebrew\/homebrew-bottles\r\n    #HomeBrew\u57fa\u7840\u6846\u67b6\r\n    USER_BREW_GIT=https:\/\/mirrors.aliyun.com\/homebrew\/brew.git \r\n    #HomeBrew Core\r\n    if [[ -z \"${HOMEBREW_ON_LINUX-}\" ]]; then\r\n        USER_CORE_GIT=https:\/\/mirrors.aliyun.com\/homebrew\/homebrew-core.git\r\n    else\r\n        USER_CORE_GIT=https:\/\/mirrors.ustc.edu.cn\/linuxbrew-core.git\r\n        echo \"\u963f\u91cc\u5df4\u5df4\u65e0core\uff0c\u8fd9\u91cc\u66ff\u6362\u4e3a\u4e86\u4e2d\u56fd\u79d1\u5b66\u6280\u672f\u5927\u5b66\u7684linuxbrew-core\"\r\n    fi\r\n    #HomeBrew Cask\r\n    USER_CASK_GIT=https:\/\/mirrors.aliyun.com\/homebrew\/homebrew-cask.git\r\n;;\r\n*)\r\n  echo \"\r\n  \u4f60\u9009\u62e9\u4e86\u4e2d\u56fd\u79d1\u5b66\u6280\u672f\u5927\u5b66\u4e0b\u8f7d\u6e90\r\n  \"\r\n  #HomeBrew \u4e0b\u8f7d\u6e90 install\r\n  if [[ -z \"${HOMEBREW_ON_LINUX-}\" ]]; then\r\n    USER_HOMEBREW_BOTTLE_DOMAIN=https:\/\/mirrors.ustc.edu.cn\/homebrew-bottles\r\n  else\r\n    USER_HOMEBREW_BOTTLE_DOMAIN=https:\/\/mirrors.ustc.edu.cn\/linuxbrew-bottles\/\r\n  fi\r\n  #HomeBrew\u57fa\u7840\u6846\u67b6\r\n  USER_BREW_GIT=https:\/\/mirrors.ustc.edu.cn\/brew.git\r\n  #HomeBrew Core\r\n  if [[ -z \"${HOMEBREW_ON_LINUX-}\" ]]; then\r\n    USER_CORE_GIT=https:\/\/mirrors.ustc.edu.cn\/homebrew-core.git\r\n  else\r\n    USER_CORE_GIT=https:\/\/mirrors.ustc.edu.cn\/linuxbrew-core.git\r\n  fi\r\n  #HomeBrew Cask\r\n  USER_CASK_GIT=https:\/\/mirrors.ustc.edu.cn\/homebrew-cask.git\r\n;;\r\nesac\r\necho -n \"${tty_green}\uff01\uff01\uff01\u6b64\u811a\u672c\u5c06\u8981\u5220\u9664\u4e4b\u524d\u7684brew(\u5305\u62ec\u5b83\u4e0b\u8f7d\u7684\u8f6f\u4ef6)\uff0c\u8bf7\u81ea\u884c\u5907\u4efd\u3002\r\n-&gt;\u662f\u5426\u73b0\u5728\u5f00\u59cb\u6267\u884c\u811a\u672c\uff08N\/Y\uff09 \"\r\nread MY_Del_Old\r\necho \"${tty_reset}\"\r\ncase $MY_Del_Old in\r\n\"y\")\r\necho \"--&gt; \u811a\u672c\u5f00\u59cb\u6267\u884c\"\r\n;;\r\n\"Y\")\r\necho \"--&gt; \u811a\u672c\u5f00\u59cb\u6267\u884c\"\r\n;;\r\n*)\r\necho \"\u4f60\u8f93\u5165\u4e86 $MY_Del_Old \uff0c\u81ea\u884c\u5907\u4efd\u8001\u7248brew\u548c\u5b83\u4e0b\u8f7d\u7684\u8f6f\u4ef6, \u5982\u679c\u7ee7\u7eed\u8fd0\u884c\u811a\u672c\u5e94\u8be5\u8f93\u5165Y\u6216\u8005y\r\n\"\r\nexit 0\r\n;;\r\nesac\r\n\r\n\r\nif [[ -z \"${HOMEBREW_ON_LINUX-}\" ]]; then\r\n#MAC\r\n  echo \"${tty_yellow} Mac os\u8bbe\u7f6e\u5f00\u673a\u5bc6\u7801\u65b9\u6cd5\uff1a\r\n  (\u8bbe\u7f6e\u5f00\u673a\u5bc6\u7801\uff1a\u5728\u5de6\u4e0a\u89d2\u82f9\u679c\u56fe\u6807-&gt;\u7cfb\u7edf\u504f\u597d\u8bbe\u7f6e-&gt;\"\u7528\u6237\u4e0e\u7fa4\u7ec4\"-&gt;\u66f4\u6539\u5bc6\u7801)\r\n  (\u5982\u679c\u63d0\u793aThis incident will be reported. \u5728\"\u7528\u6237\u4e0e\u7fa4\u7ec4\"\u4e2d\u67e5\u770b\u662f\u5426\u7ba1\u7406\u5458) ${tty_reset}\"\r\nfi\r\n\r\necho \"==&gt; \u901a\u8fc7\u547d\u4ee4\u5220\u9664\u4e4b\u524d\u7684brew\u3001\u521b\u5efa\u4e00\u4e2a\u65b0\u7684Homebrew\u6587\u4ef6\u5939\r\n${tty_cyan}\u8bf7\u8f93\u5165\u5f00\u673a\u5bc6\u7801\uff0c\u8f93\u5165\u8fc7\u7a0b\u4e0d\u663e\u793a\uff0c\u8f93\u5165\u5b8c\u540e\u56de\u8f66${tty_reset}\"\r\n\r\nsudo echo '\u5f00\u59cb\u6267\u884c'\r\n#\u5220\u9664\u4ee5\u524d\u7684Homebrew\r\nRmCreate ${HOMEBREW_REPOSITORY}\r\nRmAndCopy $HOMEBREW_CACHE\r\nRmAndCopy $HOMEBREW_LOGS\r\n\r\n# \u8ba9\u73af\u5883\u6682\u65f6\u7eaf\u7cb9\uff0c\u811a\u672c\u8fd0\u884c\u7ed3\u675f\u540e\u6062\u590d\r\nif [[ -z \"${HOMEBREW_ON_LINUX-}\" ]]; then\r\n    export PATH=\/usr\/local\/bin:\/usr\/bin:\/bin:\/usr\/sbin:\/sbin:${HOMEBREW_REPOSITORY}\/bin\r\nfi\r\ngit --version\r\nif [ $? -ne 0 ];then\r\n\r\n    if [[ -z \"${HOMEBREW_ON_LINUX-}\" ]]; then\r\n        sudo rm -rf \"\/Library\/Developer\/CommandLineTools\/\"\r\n        echo \"${tty_cyan}\u5b89\u88c5Git${tty_reset}\u540e\u518d\u8fd0\u884c\u6b64\u811a\u672c\uff0c${tty_red}\u5728\u7cfb\u7edf\u5f39\u7a97\u4e2d\u70b9\u51fb\u201c\u5b89\u88c5\u201d\u6309\u94ae\r\n        \u5982\u679c\u6ca1\u6709\u5f39\u7a97\u7684\u8001\u7cfb\u7edf\uff0c\u9700\u8981\u81ea\u5df1\u4e0b\u8f7d\u5b89\u88c5\uff1ahttps:\/\/sourceforge.net\/projects\/git-osx-installer\/ ${tty_reset}\"\r\n        xcode-select --install\r\n        exit 0\r\n    else\r\n        echo \"${tty_red} \u53d1\u73b0\u7f3a\u5c11git\uff0c\u5f00\u59cb\u5b89\u88c5\uff0c\u8bf7\u8f93\u5165Y ${tty_reset}\"\r\n        sudo apt install git\r\n    fi\r\nfi\r\n\r\necho \"\r\n${tty_cyan}\u4e0b\u8f7d\u901f\u5ea6\u89c9\u5f97\u6162\u53ef\u4ee5ctrl+c\u6216control+c\u91cd\u65b0\u8fd0\u884c\u811a\u672c\u9009\u62e9\u4e0b\u8f7d\u6e90${tty_reset}\r\n==&gt; \u514b\u9686Homebrew\u57fa\u672c\u6587\u4ef6\r\n\"\r\nwarning_if\r\nsudo git clone ${GIT_SPEED} $USER_BREW_GIT ${HOMEBREW_REPOSITORY}\r\nJudgeSuccess \u5c1d\u8bd5\u518d\u6b21\u8fd0\u884c\u81ea\u52a8\u811a\u672c\u9009\u62e9\u5176\u4ed6\u4e0b\u8f7d\u6e90\u6216\u8005\u5207\u6362\u7f51\u7edc out\r\n\r\n#\u4f9d\u8d56\u76ee\u5f55\u521b\u5efa \u6388\u6743\u7b49\u7b49\r\nCreateBrewLinkFolder\r\n\r\necho '==&gt; \u521b\u5efabrew\u7684\u66ff\u8eab'\r\nif [[ \"${HOMEBREW_REPOSITORY}\" != \"${HOMEBREW_PREFIX}\" ]]; then\r\n  find ${HOMEBREW_PREFIX}\/bin -name brew -exec sudo rm -f {} \\;\r\n  execute \"ln\" \"-sf\" \"${HOMEBREW_REPOSITORY}\/bin\/brew\" \"${HOMEBREW_PREFIX}\/bin\/brew\"\r\nfi\r\n\r\necho \"==&gt; \u514b\u9686Homebrew Core\r\n${tty_cyan}\u6b64\u5904\u5982\u679c\u663e\u793aPassword\u8868\u793a\u9700\u8981\u518d\u6b21\u8f93\u5165\u5f00\u673a\u5bc6\u7801\uff0c\u8f93\u5165\u5b8c\u540e\u56de\u8f66${tty_reset}\"\r\nsudo mkdir -p ${HOMEBREW_REPOSITORY}\/Library\/Taps\/homebrew\/homebrew-core\r\nsudo git clone ${GIT_SPEED} $USER_CORE_GIT ${HOMEBREW_REPOSITORY}\/Library\/Taps\/homebrew\/homebrew-core\/\r\nJudgeSuccess \u5c1d\u8bd5\u518d\u6b21\u8fd0\u884c\u81ea\u52a8\u811a\u672c\u9009\u62e9\u5176\u4ed6\u4e0b\u8f7d\u6e90\u6216\u8005\u5207\u6362\u7f51\u7edc out\r\n\r\nif [[ -z \"${HOMEBREW_ON_LINUX-}\" ]]; then\r\n#MAC\r\n  echo \"==&gt; \u514b\u9686Homebrew Cask \u56fe\u5f62\u5316\u8f6f\u4ef6\r\n  ${tty_cyan}\u6b64\u5904\u5982\u679c\u663e\u793aPassword\u8868\u793a\u9700\u8981\u518d\u6b21\u8f93\u5165\u5f00\u673a\u5bc6\u7801\uff0c\u8f93\u5165\u5b8c\u540e\u56de\u8f66${tty_reset}\"\r\n  if [[ \"$MY_DOWN_NUM\" -eq \"5\" ]];then\r\n    echo \"${tty_yellow} \u963f\u91cc\u6e90\u6ca1\u6709Cask \u8df3\u8fc7${tty_reset}\"\r\n  else\r\n    sudo mkdir -p ${HOMEBREW_REPOSITORY}\/Library\/Taps\/homebrew\/homebrew-cask\r\n    sudo git clone ${GIT_SPEED} $USER_CASK_GIT ${HOMEBREW_REPOSITORY}\/Library\/Taps\/homebrew\/homebrew-cask\/\r\n    if [ $? -ne 0 ];then\r\n        sudo rm -rf ${HOMEBREW_REPOSITORY}\/Library\/Taps\/homebrew\/homebrew-cask\r\n        echo \"${tty_red}\u5c1d\u8bd5\u5207\u6362\u4e0b\u8f7d\u6e90\u6216\u8005\u5207\u6362\u7f51\u7edc,\u4e0d\u8fc7Cask\u7ec4\u4ef6\u975e\u5fc5\u987b\u6a21\u5757\u3002\u53ef\u4ee5\u5ffd\u7565${tty_reset}\"\r\n    else\r\n        echo \"${tty_green}\u6b64\u6b65\u9aa4\u6210\u529f${tty_reset}\"\r\n\r\n    fi\r\n  fi\r\n\r\n  echo \"==&gt; \u514b\u9686Homebrew services \u7ba1\u7406\u670d\u52a1\u7684\u542f\u505c\r\n  \"\r\n  sudo mkdir -p ${HOMEBREW_REPOSITORY}\/Library\/Taps\/homebrew\/homebrew-cask\r\n  sudo git clone ${GIT_SPEED} $USER_SERVICES_GIT ${HOMEBREW_REPOSITORY}\/Library\/Taps\/homebrew\/homebrew-services\/\r\n  JudgeSuccess\r\nelse\r\n#Linux\r\n  echo \"${tty_yellow} Linux \u4e0d\u652f\u6301Cask\u56fe\u5f62\u5316\u8f6f\u4ef6\u4e0b\u8f7d \u6b64\u6b65\u9aa4\u8df3\u8fc7${tty_reset}\"\r\nfi\r\necho '==&gt; \u914d\u7f6e\u56fd\u5185\u955c\u50cf\u6e90HOMEBREW BOTTLE'\r\n\r\n#\u5224\u65ad\u4e0b\u7ec8\u7aef\u662fBash\u8fd8\u662fzsh\r\ncase \"$SHELL\" in\r\n  *\/bash*)\r\n    if [[ -r \"$HOME\/.bash_profile\" ]]; then\r\n      shell_profile=\"${HOME}\/.bash_profile\"\r\n    else\r\n      shell_profile=\"${HOME}\/.profile\"\r\n    fi\r\n    ;;\r\n  *\/zsh*)\r\n    shell_profile=\"${HOME}\/.zprofile\"\r\n    ;;\r\n  *)\r\n    shell_profile=\"${HOME}\/.profile\"\r\n    ;;\r\nesac\r\n\r\nif [[ -f ${shell_profile} ]]; then\r\n  AddPermission ${shell_profile}\r\nfi\r\n#\u5220\u9664\u4e4b\u524d\u7684\u73af\u5883\u53d8\u91cf\r\nif [[ -z \"${HOMEBREW_ON_LINUX-}\" ]]; then\r\n  #Mac\r\n  sed -i \"\" \"\/ckbrew\/d\" ${shell_profile}\r\nelse\r\n  #Linux\r\n  sed -i \"\/ckbrew\/d\" ${shell_profile}\r\nfi\r\n#\u5199\u5165\u73af\u5883\u53d8\u91cf\u5230\u6587\u4ef6\r\necho \"\u73af\u5883\u53d8\u91cf\u5199\u5165-&gt;${shell_profile}\"\r\n\r\necho \"\r\n  export HOMEBREW_BOTTLE_DOMAIN=${USER_HOMEBREW_BOTTLE_DOMAIN} #ckbrew\r\n  eval \\$(${HOMEBREW_REPOSITORY}\/bin\/brew shellenv) #ckbrew\r\n\" &gt;&gt; ${shell_profile} \r\nJudgeSuccess\r\nsource \"${shell_profile}\"\r\nif [ $? -ne 0 ];then\r\n    echo \"${tty_red}\u53d1\u73b0\u9519\u8bef\uff0c${shell_profile} \u6587\u4ef6\u4e2d\u6709\u9519\u8bef\uff0c\u5efa\u8bae\u6839\u636e\u4e0a\u4e00\u53e5\u63d0\u793a\u4fee\u6539\uff1b\r\n                \u5426\u5219\u4f1a\u5bfc\u81f4\u63d0\u793a permission denied: brew${tty_reset}\"\r\nfi\r\n\r\nAddPermission ${HOMEBREW_REPOSITORY}\r\n#\u5148\u6682\u65f6\u8bbe\u7f6e\u5230\u6e05\u534e\u5927\u5b66\u6e90\uff0c\u4e2d\u79d1\u5927\u6ca1\u6709Ruby\u4e0b\u8f7d\u955c\u50cf\r\nHOMEBREW_BOTTLE_DOMAIN=https:\/\/mirrors.tuna.tsinghua.edu.cn\/homebrew-bottles\r\n\r\nif [[ -n \"${HOMEBREW_ON_LINUX-}\" ]]; then\r\n    #\u68c0\u6d4blinux curl\u662f\u5426\u6709\u5b89\u88c5\r\n    echo \"-\u68c0\u6d4bcurl\u662f\u5426\u5b89\u88c5\"\r\n    curl -V\r\n    if [ $? -ne 0 ];then\r\n        sudo apt-get install curl\r\n        if [ $? -ne 0 ];then\r\n            sudo yum install curl\r\n            if [ $? -ne 0 ];then\r\n                echo '\u5931\u8d25 \u8bf7\u81ea\u884c\u5b89\u88c5curl \u53ef\u4ee5\u53c2\u8003https:\/\/www.howtoing.com\/install-curl-in-linux'\r\n                error_game_over\r\n            fi\r\n        fi\r\n    fi\r\nfi\r\n\r\necho '\r\n==&gt; \u5b89\u88c5\u5b8c\u6210\uff0cbrew\u7248\u672c\r\n'\r\nbrew -v\r\nif [ $? -ne 0 ];then\r\n    echo '\u53d1\u73b0\u9519\u8bef\uff0c\u81ea\u52a8\u4fee\u590d\u4e00\u6b21\uff01'\r\n    rm -rf $HOMEBREW_CACHE\r\n    export PATH=\/usr\/local\/bin:\/usr\/bin:\/bin:\/usr\/sbin:\/sbin:${HOMEBREW_REPOSITORY}\/bin\r\n    brew update-reset\r\n    brew -v\r\n    if [ $? -ne 0 ];then\r\n      error_game_over\r\n    fi\r\nelse\r\n    echo \"${tty_green}Brew\u524d\u671f\u914d\u7f6e\u6210\u529f${tty_reset}\"\r\nfi\r\n\r\n#\u5224\u65adMac\u7cfb\u7edf\u7248\u672c\r\nif [[ -z \"${HOMEBREW_ON_LINUX-}\" ]]; then\r\n  if version_gt \"$macos_version\" \"10.14\"; then\r\n      echo \"\u7535\u8111\u7cfb\u7edf\u7248\u672c\uff1a$macos_version\"\r\n  else\r\n      echo \"${tty_red}\u68c0\u6d4b\u5230\u4f60\u4e0d\u662f\u6700\u65b0\u7cfb\u7edf\uff0c\u4f1a\u6709\u4e00\u4e9b\u62a5\u9519\uff0c\u8bf7\u7a0d\u7b49Ruby\u4e0b\u8f7d\u5b89\u88c5;${tty_reset}\r\n      \"\r\n  fi\r\nfi\r\nbrew services cleanup\r\n\r\nHOMEBREW_BOTTLE_DOMAIN=${USER_HOMEBREW_BOTTLE_DOMAIN}\r\nif [[ $GIT_SPEED == \"\" ]];then\r\n  echo '\r\n  ==&gt; brew update\r\n  '\r\n  brew update\r\n  if [[ $? -ne 0 ]];then\r\n      error_game_over\r\n      exit 0\r\n  fi\r\nelse\r\n   #\u6781\u901f\u6a21\u5f0f\u63d0\u793aUpdate\u4fee\u590d\u65b9\u6cd5\r\n    echo \"\r\n${tty_red}  \u6781\u901f\u7248\u672c\u5b89\u88c5\u5b8c\u6210\uff0c${tty_reset} install\u529f\u80fd\u6b63\u5e38\uff0c\u5982\u679c\u9700\u8981update\u529f\u80fd\u8bf7\u81ea\u884c\u8fd0\u884c\u4e0b\u9762\u4e24\u53e5\u547d\u4ee4\r\ngit -C ${HOMEBREW_REPOSITORY}\/Library\/Taps\/homebrew\/homebrew-core fetch --unshallow\r\ngit -C ${HOMEBREW_REPOSITORY}\/Library\/Taps\/homebrew\/homebrew-cask fetch --unshallow\r\n  \"\r\nfi\r\n\r\necho \"\r\n        ${tty_green}Brew\u81ea\u52a8\u5b89\u88c5\u7a0b\u5e8f\u8fd0\u884c\u5b8c\u6210${tty_reset}\r\n          ${tty_green}\u56fd\u5185\u5730\u5740\u5df2\u7ecf\u914d\u7f6e\u5b8c\u6210${tty_reset}\r\n\r\n  \u684c\u9762\u7684Old_Homebrew\u6587\u4ef6\u5939\uff0c\u5927\u81f4\u770b\u770b\u6ca1\u6709\u4f60\u9700\u8981\u7684\u53ef\u4ee5\u5220\u9664\u3002\r\n\r\n              \u521d\u6b65\u4ecb\u7ecd\u51e0\u4e2abrew\u547d\u4ee4\r\n\u672c\u5730\u8f6f\u4ef6\u5e93\u5217\u8868\uff1abrew ls\r\n\u67e5\u627e\u8f6f\u4ef6\uff1abrew search google\uff08\u5176\u4e2dgoogle\u66ff\u6362\u4e3a\u8981\u67e5\u627e\u7684\u5173\u952e\u5b57\uff09\r\n\u67e5\u770bbrew\u7248\u672c\uff1abrew -v  \u66f4\u65b0brew\u7248\u672c\uff1abrew update\r\n\u5b89\u88c5cask\u8f6f\u4ef6\uff1abrew install --cask firefox \u628afirefox\u6362\u6210\u4f60\u8981\u5b89\u88c5\u7684\r\n        ${tty_green}\r\n        \u6b22\u8fce\u53f3\u952e\u70b9\u51fb\u4e0b\u65b9\u5730\u5740-\u6253\u5f00URL \u6765\u7ed9\u70b9\u4e2a\u8d5e${tty_reset}\r\n        ${tty_underline} https:\/\/zhuanlan.zhihu.com\/p\/111014448 ${tty_reset}\r\n\"\r\n\r\nif [[ -z \"${HOMEBREW_ON_LINUX-}\" ]]; then\r\n  #Mac\r\n  echo \"${tty_green} \u91cd\u542f\u7ec8\u7aef \u6216\u8005 \u8fd0\u884c${tty_bold} source ${shell_profile}  ${tty_reset}\uff0c\u5426\u5219\u53ef\u80fd\u65e0\u6cd5\u4f7f\u7528\r\n  \"\r\nelse\r\n  #Linux\r\n  echo \"${tty_green} Linux\u9700\u8981\u91cd\u542f\u7535\u8111 \u6216\u8005\u6682\u65f6\u8fd0\u884c${tty_bold} source ${shell_profile} ${tty_reset}\uff0c\u5426\u5219\u53ef\u80fd\u65e0\u6cd5\u4f7f\u7528\r\n  \"\r\nfi\r\n<\/code><\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5b98\u7f51\u7684\u5b89\u88c5\u603b\u662f\u56e0\u4e3a\u5404\u79cd\u5899\u5b89\u88c5\u5931\u8d25\uff0c\u7528\u56fd\u5185\u8fd9\u4e2a\u5730\u5740\u5f88\u597d\u7528\uff1a # \u4e00\u952e\u5b89\u88c5 \/bin\/zsh -c &#8220;$(curl [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[36],"tags":[1049,37],"_links":{"self":[{"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/4546"}],"collection":[{"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4546"}],"version-history":[{"count":0,"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/4546\/revisions"}],"wp:attachment":[{"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4546"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4546"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}