diff --git a/clash/clashsh b/clash/clashsh index 2c74e51..bde07ea 100644 --- a/clash/clashsh +++ b/clash/clashsh @@ -80,13 +80,13 @@ EOF` Https="https://$Server/sub?target=clashr&new_name=true&url=$Url&insert=false&config=$Config" echo ----------------------------------------------- echo 正在连接服务器获取配置文件…………链接地址为: -echo $Https +echo -e "\033[4;32m$Https\033[0m" echo 可以手动复制该链接到浏览器打开并查看数据是否正常! -echo ----------------------------------------------- -echo '| |' -echo '| 需要一点时间,请耐心等待! |' -echo '| |' -echo ----------------------------------------------- +echo -e "\033[36m-----------------------------------------------" +echo -e "| |" +echo -e "| 需要一点时间,请耐心等待! |" +echo -e "| |" +echo -e "-----------------------------------------------\033[0m" #获取在线yaml文件 yamlnew=$yaml.new rm $yamlnew > /dev/null 2>&1 @@ -94,7 +94,20 @@ rm $yamlnew > /dev/null 2>&1 result=$(curl -w %{http_code} -skLo $yamlnew $Https) if [ "$result" != "200" ];then echo ----------------------------------------------- -echo 配置文件获取失败!请检查链接或者更换后端地址! +echo -e "\033[31m配置文件获取失败!\033[0m" +echo ----------------------------------------------- +echo +read -p "是否更换后端地址后重试?[1/0] > " res + if [ "$res" = '1' ]; then + sed -i '/server_link=*/'d $ccfg + if [ "$server_link" = '4' ]; then + server_link=0 + fi + server_link=$(($server_link + 1)) + echo $server_link + sed -i "5i\server_link=$server_link" $ccfg + getyaml + fi exit; else if cat $yamlnew | grep ', server:' >/dev/null;then @@ -159,17 +172,21 @@ do echo ----------------------------------------------- echo -e "\033[44m 实验性功能,遇问题请加TG群反馈:\033[42;30m t.me/clashfm \033[0m" echo ----------------------------------------------- -echo -e "\033[32m支持导入单个\033[30;47m Http \033[0;32m格式的订阅链接(多个会被覆盖)" -echo -e "支持批量导入\033[30;47m Vmess/SSR/SS/Trojan \033[0;32m格式的节点链接" -echo -e "多个较短的链接可以用|分隔以一次性输入" -echo -e "多个较长的链接请尽量分多次输入,可支持多达9次输入" -echo -e "\033[33m输入回车以开始导入链接!\033[0m" +echo -e "\033[33m支持批量导入\033[30;46m Http/Https/Clash \033[0;33m等格式的订阅链接" +echo -e "支持批量导入\033[30;42m Vmess/SSR/SS/Trojan/Sock5 \033[0;33m等格式的节点链接" +echo -e "\033[36m多个较短的链接可以用\033[30;47m | \033[0;36m分隔以一次性输入" +echo -e "多个较长的链接请尽量分多次输入,可支持多达\033[30;47m 9 \033[0;36m次输入" +echo -e "\033[0m注意SSR/SS不支持\033[30;47m chacha20加密 \033[0m" +echo -e "\033[44;37m直接输入回车以结束输入并开始导入链接!\033[0m" echo -e "\033[33m 0 返回上级目录!\033[0m" echo url="" read -p "请输入第"$i"个链接 > " url test=$(echo $url | grep "://") url=`echo ${url/\ \(*\)/''}` #删除恶心的超链接内容 + url=`echo ${url/*\&url\=/""}` #将clash完整链接还原成单一链接 + url=`echo ${url/\&config\=*/""}` #将clash完整链接还原成单一链接 + url=`echo ${url//\&/\%26}` #将分隔符 & 替换成urlcode:%26 if [[ "$test" != "" ]];then if [[ $i == 1 ]];then Url="$url" @@ -180,8 +197,8 @@ read -p "请输入第"$i"个链接 > " url elif [ -z $url ];then if [ -n $Url ];then echo ----------------------------------------------- - echo 请检查输入的链接是否正确! - echo $Url + echo -e 请检查输入的链接是否正确: + echo -e "\033[4m$Url\033[0m" read -p "确认导入配置文件?原配置文件将被更名为config.bak![1/0] > " res if [ "$res" = '1' ]; then #将用户链接写入mark @@ -191,18 +208,19 @@ read -p "请输入第"$i"个链接 > " url getyaml exit; fi + clashlink fi elif [[ $url == 0 ]];then clashlink else echo ----------------------------------------------- - echo 请输入正确的订阅/分享链接!!! + echo -e "\033[31m请输入正确的订阅/分享链接!!!\033[0m" fi done echo ----------------------------------------------- echo 输入太多啦,可能会导致订阅失败! -echo 多个较短的链接请尽量用|分隔以一次性输入! -echo 请检查输入的链接是否正确:$Url +echo "多个较短的链接请尽量用“|”分隔以一次性输入!" +echo -e "请检查输入的链接是否正确:\033[4m$Url\033[0m" read -p "确认导入配置文件?原配置文件将被更名为config.bak![1/0] > " res if [ "$res" = '1' ]; then #将用户链接写入mark @@ -216,7 +234,7 @@ read -p "确认导入配置文件?原配置文件将被更名为config.bak![1/ echo 操作已取消!返回上级菜单! clashlink fi - + clashlink } clashlink(){ #获取订阅规则 @@ -228,12 +246,12 @@ fi #获取后端服务器地址 if [ ! -n "$server_link" ]; then sed -i '/server_link=*/'d $ccfg -sed -i "5i\server_link=1" $ccfg -server_link=1 +sed -i "5i\server_link=3" $ccfg +server_link=3 fi echo ----------------------------------------------- echo -e "\033[44m 实验性功能,遇问题请加TG群反馈:\033[42;30m t.me/clashfm \033[0m" -echo 欢迎使用订阅功能! +echo -e "\033[32m 欢迎使用订阅功能!\033[0m" echo -e 1 输入订阅链接 echo -e 2 选取规则模版 echo -e 3 选择后端地址 @@ -268,7 +286,7 @@ elif [[ $num == 2 ]];then sed -i '/rule_link*/'d $ccfg sed -i "4i\rule_link="$num"" $ccfg echo ----------------------------------------------- - echo 设置成功!返回上级菜单! + echo -e "\033[32m设置成功!返回上级菜单!\033[0m" clashlink fi elif [[ $num == 3 ]];then @@ -293,27 +311,28 @@ elif [[ $num == 3 ]];then sed -i '/server_link*/'d $ccfg sed -i "4i\server_link="$num"" $ccfg echo ----------------------------------------------- - echo 设置成功!返回上级菜单! + echo -e "\033[32m设置成功!返回上级菜单!\033[0m" clashlink fi elif [[ $num == 4 ]];then yamlbak=$yaml.bak if [ ! -f "$yaml".bak ];then echo ----------------------------------------------- - echo 没有找到配置文件的备份! + echo -e "\033[31m没有找到配置文件的备份!\033[0m" else echo ----------------------------------------------- - echo 备份文件共有`wc -l < $yamlbak`行内容,当前文件共有`wc -l < $yaml`行内容 + echo -e 备份文件共有"\033[32m`wc -l < $yamlbak`\033[0m"行内容,当前文件共有"\033[32m`wc -l < $yaml`\033[0m"行内容 read -p "确认还原配置文件?此操作不可逆![1/0] > " res if [ "$res" = '1' ]; then mv $yamlbak $yaml echo ----------------------------------------------- - echo 配置文件已还原!!! + echo -e "\033[32m配置文件已还原!请手动重启clash服务!\033[0m" else - echo 操作已取消!返回上级菜单! + echo ----------------------------------------------- + echo -e "\033[31m操作已取消!返回上级菜单!\033[0m" fi fi - clashlink + clashsh elif [[ $num == 5 ]];then if [ ! -n "$Url" ];then echo ----------------------------------------------- @@ -322,8 +341,8 @@ elif [[ $num == 5 ]];then else echo ----------------------------------------------- echo ----------------------------------------------- - echo 记录的订阅链接为: - echo $Url + echo -e "\033[33m当前系统记录的订阅链接为:\033[0m" + echo -e "\033[4;32m$Url\033[0m" echo ----------------------------------------------- read -p "确认更新配置文件?[1/0] > " res if [ "$res" = '1' ]; then