# 设置网络代理的脚本

```shell
#!/bin/zsh
# 获取脚本的绝对路径
SCRIPT_PATH=$(realpath "$0")
# 获取脚本所在目录
SCRIPT_DIR=$(dirname "$SCRIPT_PATH")
# 输出脚本所在目录
echo "脚本所在目录路径: $SCRIPT_DIR"
# 进入脚本所在目录
cd "$SCRIPT_DIR"
# 输出当前目录，确认已进入脚本所在目录
echo "当前路径是：$(pwd)，将会创建naiveproxy目录"
mkdir -p ~/naiveproxy
echo "创建$(pwd)/naiveproxy目录"
cp naive ~/naiveproxy
cp config.json ~/naiveproxy
cp -r run_proxy.app ~/naiveproxy
echo "复制所需文件进naiveproxy目录"
cp -r run_proxy.app /Volumes/Macintosh\ HD/Applications
echo "复制run_proxy到应用程序列表"
networksetup -setautoproxyurl Wi-Fi https://pac.disbaidu.com/gfw2.pac
#设置wifi的代理规则，pac自动代理
echo "Install done! "
echo "在应用程序列表中，点击run_proxy。"
```

其中：
naive 和config.json 请自行下载并放到脚本所在目录下。
下载地址：https://github.com/klzgrad/naiveproxy/releases

run_proxy.app 请在自动化脚本中自行创建：
打开应用程序：Automator 或 自动化
选择工作流（Workflow）：应用程序
选择服务（Service）：运行Shell脚本(run shell script)
输入脚本内容：
```shell
pkill naive
~/naiveproxy/naive ~/naiveproxy/config.json 2>&1
exit
```
保存并运行。
解释：
pkill naive：杀死之前运行的naive进程
~/naiveproxy/naive ~/naiveproxy/config.json 2>&1：运行naiveproxy，将日志输出到控制台
exit：退出脚本

## 自动下载naiveproxy并运行脚本
```shell
#!/bin/zsh
# 获取脚本的绝对路径
SCRIPT_PATH=$(realpath "$0")
# 获取脚本所在目录
SCRIPT_DIR=$(dirname "$SCRIPT_PATH")
# 输出脚本所在目录
echo "脚本所在目录路径: $SCRIPT_DIR"
# 进入脚本所在目录
cd "$SCRIPT_DIR"
# 输出当前目录，确认已进入脚本所在目录
echo "当前路径是：$(pwd)，将会创建naiveproxy目录"
# 判断当前是否存在naiveproxy目录，如果不存在，则创建
if [! -d "naiveproxy" ]; then
mkdir -p naiveproxy
echo "创建$(pwd)/naiveproxy目录"
fi
cd naiveproxy
# 判断是否存在naive文件，如果不存在，则下载
if [! -f "naive" ]; then
    echo "naive文件不存在，开始下载"
# 判断当前环境是M1还是x86，下载对应的naiveproxy
    if [ $(uname -m) = "arm64" ]; then
        echo "当前环境是M1，下载M1版naiveproxy"
        curl -L -o naive.tar.xz https://pan.disbaidu.com/download/naive/naiveproxy-mac-arm64.tar.xz
    else
        echo "当前环境是x86，下载x86版naiveproxy"
        curl -L -o naive.tar.xz https://pan.disbaidu.com/download/naive/naiveproxy-mac-x64.tar.xz
    fi
    # 解压naive文件
    echo "解压naive文件"
    tar -xf naive.tar.xz
    mv naiveproxy-* naivetmp
    cp naivetmp/naive naive
    rm -rf naivetmp
    rm naive.tar.xz
    # 判断config.json文件是否存在，如果不存在，创建配置文件并写入配置
    if [! -f "config.json" ]; then
        echo "config.json文件不存在，创建配置文件并写入配置"
        echo '{"listen": "http://127.0.0.1:1099","proxy": "https://onghan:onghan@o.disbaidu.com","log": "o.log"}' > config.json
        fi

