sh 自动更新ShadowsocksX的PAC。仅在OS X上测试过。(已弃用)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh 自动更新ShadowsocksX的PAC。仅在OS X上测试过。(已弃用)相关的知识,希望对你有一定的参考价值。

#!/bin/bash
# update_gfwlist.sh
# Author : VincentSit
# Copyright (c) http://xuexuefeng.com
#
# Example usage
#
# ./whatever-you-name-this.sh
#
# Task Scheduling (Optional)
#
#	crontab -e
#
# add:
# 30 9 * * * sh /path/whatever-you-name-this.sh
#
# Now it will update the PAC at 9:30 every day.
#
# Remember to chmod +x the script.


GFWLIST="https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt"
PROXY="127.0.0.1:1080"
USER_RULE_NAME="user-rule.txt"

check_module_installed()
{
	pip list | grep gfwlist2pac &> /dev/null

	if [ $? -eq 1 ]; then
		echo "Installing gfwlist2pac."

		pip install gfwlist2pac
	fi
}

update_gfwlist()
{
	echo "Downloading gfwlist."

	curl -s "$GFWLIST" --fail --socks5-hostname "$PROXY" --output /tmp/gfwlist.txt

	if [[ $? -ne 0 ]]; then
		echo "abort due to error occurred."
    exit 1
	fi

	cd ~/.ShadowsocksX || exit 1

	if [ -f "gfwlist.js" ]; then
		mv gfwlist.js ~/.Trash
	fi

	if [ ! -f $USER_RULE_NAME ]; then
		touch $USER_RULE_NAME
	fi

	/usr/local/bin/gfwlist2pac \
    --input /tmp/gfwlist.txt \
    --file gfwlist.js \
    --proxy "SOCKS5 $PROXY; SOCKS $PROXY; DIRECT" \
    --user-rule $USER_RULE_NAME \
    --precise

  rm -f /tmp/gfwlist.txt

  echo "Updated."
}

check_module_installed
update_gfwlist

以上是关于sh 自动更新ShadowsocksX的PAC。仅在OS X上测试过。(已弃用)的主要内容,如果未能解决你的问题,请参考以下文章

sh 自动更新ShadowsocksX的PAC。仅在OS X上测试过。(已弃用)

sh 自动更新ShadowsocksX的PAC。仅在OS X上测试过。(已弃用)

sh 自动更新ShadowsocksX的PAC。仅在OS X上测试过。(已弃用)

PAC脚本语法(代理自动配置)

sh 使用https://github.com/clowwindy/gfwlist2pac生成自定义PAC的辅助脚本

awk不分配变量并使用$ 0代替