修复部分情况下导入带超链接形式的节点链接时报错的bug

This commit is contained in:
juewuy
2020-07-31 13:19:29 +08:00
parent 200c8f81dd
commit bf86c99f36

View File

@@ -97,7 +97,7 @@ echo -----------------------------------------------
echo 配置文件获取失败!请检查链接或者更换后端地址! echo 配置文件获取失败!请检查链接或者更换后端地址!
exit; exit;
else else
if cat $yamlnew | grep proxies>/dev/null;then if cat $yamlnew | grep ', server:' >/dev/null;then
##########需要变更的配置########### ##########需要变更的配置###########
redir='redir-port: 7892' redir='redir-port: 7892'
external='external-controller: 0.0.0.0:9999' external='external-controller: 0.0.0.0:9999'
@@ -140,8 +140,12 @@ exper='experimental: {ignore-resolve-fail: true, interface-name: en0}'
exit; exit;
else else
echo ----------------------------------------------- echo -----------------------------------------------
echo 囧囧囧 获取到了配置文件,但格式似乎不对 囧囧囧 echo -e "\033[33m囧囧囧 获取到了配置文件,但格式似乎不对 囧囧囧\033[0m"
echo 请手动输入命令cat $yamlnew 以检查配置文件信息! echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sed -n '1,20p' $yamlnew
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -e "\033[33m请检查如上配置文件信息:\033[0m"
echo -----------------------------------------------
fi fi
exit; exit;
fi fi
@@ -158,14 +162,17 @@ echo -----------------------------------------------
echo -e "\033[32m支持批量导入Vmess/SSR/SS格式的订阅链接" echo -e "\033[32m支持批量导入Vmess/SSR/SS格式的订阅链接"
echo -e "支持批量导入Vmess/SSR/SS/Trojan格式的节点链接" echo -e "支持批量导入Vmess/SSR/SS/Trojan格式的节点链接"
echo -e "多个较短的链接可以用|分隔以一次性输入" echo -e "多个较短的链接可以用|分隔以一次性输入"
echo -e "多个较长的链接请尽量分多次输入" echo -e "多个较长的链接请尽量分多次输入可支持多达5次输入"
echo -e "\033[33m输入回车以结束输入\033[0m" echo -e "\033[33m输入回车以开始导入链接\033[0m"
echo -e "\033[33m 0 返回上级目录!\033[0m"
echo echo
url=""
read -p "请输入第"$i"个链接 > " url read -p "请输入第"$i"个链接 > " url
test=$(echo $url | grep "://") test=$(echo $url | egrep 'vmess://|ss://|ssr://|trojan://') #grep "://"
url=`echo ${url/\ \(*\)/''}` #删除恶心的超链接内容
if [[ "$test" != "" ]];then if [[ "$test" != "" ]];then
if [[ $i == 1 ]];then if [[ $i == 1 ]];then
Url=$url Url="$url"
else else
Url="$Url"\|"$url" Url="$Url"\|"$url"
fi fi
@@ -182,12 +189,11 @@ read -p "请输入第"$i"个链接 > " url
sed -i "6i\Url=\'$Url\'" $ccfg sed -i "6i\Url=\'$Url\'" $ccfg
#获取在线yaml文件 #获取在线yaml文件
getyaml getyaml
echo 111
exit; exit;
fi fi
fi fi
elif [[ $url == 0 ]];then elif [[ $url == 0 ]];then
clashsh clashlink
else else
echo ----------------------------------------------- echo -----------------------------------------------
echo 请输入正确的订阅/分享链接!!! echo 请输入正确的订阅/分享链接!!!
@@ -195,6 +201,7 @@ read -p "请输入第"$i"个链接 > " url
done done
echo ----------------------------------------------- echo -----------------------------------------------
echo 输入太多啦,可能会导致订阅失败! echo 输入太多啦,可能会导致订阅失败!
echo 多个较短的链接请尽量用|分隔以一次性输入!
echo 请检查输入的链接是否正确:$Url echo 请检查输入的链接是否正确:$Url
read -p "确认导入配置文件原配置文件将被更名为config.bak![1/0] > " res read -p "确认导入配置文件原配置文件将被更名为config.bak![1/0] > " res
if [ "$res" = '1' ]; then if [ "$res" = '1' ]; then
@@ -203,7 +210,6 @@ read -p "确认导入配置文件原配置文件将被更名为config.bak![1/
sed -i "6i\Url=\'$Url\'" $ccfg sed -i "6i\Url=\'$Url\'" $ccfg
#获取在线yaml文件 #获取在线yaml文件
getyaml getyaml
echo 222
exit; exit;
else else
echo ----------------------------------------------- echo -----------------------------------------------
@@ -238,8 +244,8 @@ echo -e 0 返回上级菜单
read -p "请输入对应数字 > " num read -p "请输入对应数字 > " num
if [ -z $num ];then if [ -z $num ];then
echo ----------------------------------------------- echo -----------------------------------------------
echo 请输入正确的数字! echo -e "\033[31m请输入正确的数字!\033[0m"
clashlink clashsh
elif [[ $num == 1 ]];then elif [[ $num == 1 ]];then
getlink getlink
elif [[ $num == 2 ]];then elif [[ $num == 2 ]];then
@@ -255,7 +261,7 @@ elif [[ $num == 2 ]];then
read -p "请输入对应数字 > " num read -p "请输入对应数字 > " num
if [ -z $num ];then if [ -z $num ];then
echo ----------------------------------------------- echo -----------------------------------------------
echo 请输入正确的数字! echo -e "\033[31m请输入正确的数字!\033[0m"
clashlink clashlink
else else
#将对应标记值写入mark #将对应标记值写入mark
@@ -277,9 +283,12 @@ elif [[ $num == 3 ]];then
read -p "请输入对应数字 > " num read -p "请输入对应数字 > " num
if [ -z $num ];then if [ -z $num ];then
echo ----------------------------------------------- echo -----------------------------------------------
echo 请输入正确的数字! echo -e "\033[31m请输入正确的数字!\033[0m"
clashlink clashlink
else else
if [[ $num == 0 ]];then
clashlink
fi
#将对应标记值写入mark #将对应标记值写入mark
sed -i '/server_link*/'d $ccfg sed -i '/server_link*/'d $ccfg
sed -i "4i\server_link="$num"" $ccfg sed -i "4i\server_link="$num"" $ccfg
@@ -325,7 +334,8 @@ elif [[ $num == 5 ]];then
elif [[ $num == 0 ]];then elif [[ $num == 0 ]];then
clashsh clashsh
else else
echo 请输入正确的数字! echo -----------------------------------------------
echo -e "\033[31m请输入正确的数字\033[0m"
exit; exit;
fi fi
} }
@@ -417,6 +427,7 @@ if [[ $num -le 9 ]] > /dev/null 2>&1; then
clashadv clashadv
fi fi
else else
echo -----------------------------------------------
echo -e "\033[31m请输入正确的数字\033[0m" echo -e "\033[31m请输入正确的数字\033[0m"
clashadv clashadv
fi fi
@@ -437,6 +448,7 @@ if [[ $num -le 9 ]] > /dev/null 2>&1; then
clashadv clashadv
fi fi
else else
echo -----------------------------------------------
echo -e "\033[31m请输入正确的数字\033[0m" echo -e "\033[31m请输入正确的数字\033[0m"
clashsh clashsh
fi fi
@@ -530,10 +542,12 @@ echo -e "\033[36m正在施工中敬请期待\033[0m"
clashadv clashadv
else else
echo -----------------------------------------------
echo -e "\033[31m请输入正确的数字\033[0m" echo -e "\033[31m请输入正确的数字\033[0m"
fi fi
exit 1 exit 1
else else
echo -----------------------------------------------
echo -e "\033[31m请输入正确的数字\033[0m" echo -e "\033[31m请输入正确的数字\033[0m"
fi fi
exit 1 exit 1