diff --git a/scripts/start.sh b/scripts/start.sh index 9e62029..10ebb6b 100644 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -202,10 +202,10 @@ put_save() { #推送面板选择 fi } get_bin() { #专用于项目内部文件的下载 - . "$CRASHDIR"/configs/ShellCrash.cfg >/dev/null [ -z "$update_url" ] && update_url=https://testingcf.jsdelivr.net/gh/juewuy/ShellCrash@master if [ -n "$url_id" ]; then echo "$2" | grep -q '^bin/' && release_type=update #/bin文件改为在update分支下载 + echo "$2" | grep -q '^public/' && release_type=dev #/public文件改为在dev分支下载 [ -z "$release_type" ] && release_type=master if [ "$url_id" = 101 -o "$url_id" = 104 ]; then url="$(grep "$url_id" "$CRASHDIR"/configs/servers.list | awk '{print $3}')@$release_type/$2" #jsdelivr特殊处理 diff --git a/scripts/task.sh b/scripts/task.sh index aca1959..34988d7 100644 --- a/scripts/task.sh +++ b/scripts/task.sh @@ -161,7 +161,9 @@ logger(){ [ "$task_push" = 1 ] && push= || push=off [ -n "$2" -a "$2" != 0 ] && echo -e "\033[$2m$1\033[0m" [ "$3" = 'off' ] && push=off - ${CRASHDIR}/start.sh logger $1 0 $push + echo "$1" + echo "$1" |grep -qE '(每隔|时每)([1-9]|[1-9][0-9])分钟' && push=off + ${CRASHDIR}/start.sh logger "$1" 0 "$push" } croncmd(){ if [ -n "$(crontab -h 2>&1 | grep '\-l')" ];then @@ -321,7 +323,7 @@ task_type(){ #任务条件选择菜单 ;; 1) echo ----------------------------------------------- - echo -e " 输入 0~6 对应\033[33m每周的指定某天\033[0m运行(0=周日)" + echo -e " 输入 1-7 对应\033[33m每周的指定某天\033[0m运行(7=周日)" echo -e " 输入 1,4,0 代表\033[36m每周一、周四、周日\033[0m运行" echo -e " 输入 1-5 代表\033[36m周一至周五\033[0m运行" read -p "在每周哪天执行? > " week @@ -329,8 +331,8 @@ task_type(){ #任务条件选择菜单 echo ----------------------------------------------- read -p "想在该日的具体哪个小时执行?(0-23) > " hour cron_time="在每周$week的$hour点整" - cron_time=`echo ${cron_time/0/日}` #把0换成日 - set_cron + cron_time=`echo ${cron_time/周0/周日}` #把0换成日 + [ -n "$week" ] && [ -n "$hour" ] && set_cron ;; 2) echo ----------------------------------------------- @@ -340,21 +342,21 @@ task_type(){ #任务条件选择菜单 echo ----------------------------------------------- read -p "想在具体哪分钟执行?(0-59的整数) > " min cron_time="在每日的$hour点$min分" - set_cron + [ -n "$min" ] && [ -n "$hour" ] && set_cron ;; 3) echo ----------------------------------------------- read -p "想每隔多少小时执行一次?(1-23的整数) > " num hour="*/$num" cron_time="每隔$num小时" - set_cron + [ -n "$hour" ] && set_cron ;; 4) echo ----------------------------------------------- read -p "想每隔多少分钟执行一次?(1-59的整数) > " num min="*/$num" cron_time="每隔$num分钟" - set_cron + [ -n "$min" ] && set_cron ;; 5) set_service bfstart "$task_id" "服务启动前$task_name" @@ -376,7 +378,7 @@ task_type(){ #任务条件选择菜单 cron_time="0 */$hour * * *" time_des="$hour小时" fi - set_service running "$task_id" "运行时每$time_des$task_name" "$cron_time" + [ -n "$cron_time" ] && set_service running "$task_id" "运行时每$time_des$task_name" "$cron_time" ;; 8) echo -e "该功能会将相关启动代码注入到/etc/init.d/firewall中" diff --git a/scripts/webget.sh b/scripts/webget.sh index b6ad7a7..c181bde 100644 --- a/scripts/webget.sh +++ b/scripts/webget.sh @@ -575,10 +575,10 @@ setproviders(){ #自定义providers errornum else echo ----------------------------------------------- - echo -e " 1 修改代理服务商:\033[36m$provider_name\033[0m" + echo -e " 1 修改名称:\033[36m$provider_name\033[0m" echo -e " 2 修改链接地址:\033[32m$provider_url\033[0m" - echo -e " 3 生成\033[33m仅包含此服务商\033[0m的配置文件" - echo -e " 4 \033[31m移除此服务商\033[0m" + echo -e " 3 生成\033[33m仅包含此链接\033[0m的配置文件" + echo -e " 4 \033[31m移除此链接\033[0m" echo ----------------------------------------------- echo -e " 0 返回上级菜单" read -p "请选择需要执行的操作 > " num @@ -586,15 +586,15 @@ setproviders(){ #自定义providers 0) ;; 1) - read -p "请输入代理服务商的名称或者代称(如有多个服务商不可重复) > " name - if [ -n "$name" ] && [ -z "$(grep "$name" $CRASHDIR/configs/providers.cfg)" ];then + read -p "请输入名称或者代号(不可重复,不支持纯数字) > " name + if [ -n "$name" ] && [ -z "$(echo "$name" | grep -E '^[0-9]+$')" ] && ! grep -q "$name" $CRASHDIR/configs/providers.cfg;then sed -i "s|$provider_name $provider_url|$name $provider_url|" $CRASHDIR/configs/providers.cfg else echo -e "\033[31m输入错误,请重新输入!\033[0m" fi ;; 2) - read -p "请输入providers订阅地址或本地相对路径 > " link + read -p "请输入链接地址或本地相对路径 > " link if [ -n "$(echo $link | grep -E '.*\..*|^\./')" ] && [ -z "$(grep "$link" $CRASHDIR/configs/providers.cfg)" ];then link=$(echo $link | sed 's/\&/\\\&/g') #特殊字符添加转义 sed -i "s|$provider_name $provider_url|$provider_name $link|" $CRASHDIR/configs/providers.cfg @@ -621,14 +621,14 @@ setproviders(){ #自定义providers echo -e "支持填写在线的\033[32mYClash订阅地址\033[0m或者\033[32m本地Clash配置文件\033[0m" echo -e "本地配置文件请放在\033[32m$CRASHDIR\033[0m目录下,并填写相对路径如【\033[32m./providers/test.yaml\033[0m】" echo ----------------------------------------------- - read -p "请输入providers订阅地址或本地相对路径 > " link + read -p "请输入链接地址或本地相对路径 > " link link=$(echo $link | sed 's/ //g') #去空格 [ -n "$(echo $link | grep -E '.*\..*|^\./')" ] && { - read -p "请输入代理服务商的名称或者代号(不可重复) > " name + read -p "请输入名称或代号(不可重复,不支持纯数字) > " name name=$(echo $name | sed 's/ //g') - [ -n "$name" ] && [ -z "$(grep "name" $CRASHDIR/configs/providers.cfg)" ] && { + [ -n "$name" ] && [ -z "$(echo "$name" | grep -E '^[0-9]+$')" ] && ! grep -q "$name" $CRASHDIR/configs/providers.cfg && { echo ----------------------------------------------- - echo -e "代理服务商:\033[36m$name\033[0m" + echo -e "名称:\033[36m$name\033[0m" echo -e "链接地址/路径:\033[32m$link\033[0m" read -p "确认添加?(1/0) > " res [ "$res" = 1 ] && { @@ -637,7 +637,7 @@ setproviders(){ #自定义providers } } } - [ "$?" != 0 ] && echo -e "\033[31m操作已取消!\033[0m" + [ "$?" != 0 ] && echo -e "\033[31m输入错误,操作已取消!\033[0m" sleep 1 setproviders ;; @@ -651,7 +651,7 @@ setproviders(){ #自定义providers gen_${coretype}_providers } else - echo -e "\033[31m你还未添加providers服务商,请先添加!\033[0m" + echo -e "\033[31m你还未添加链接或本地配置文件,请先添加!\033[0m" sleep 1 fi setproviders @@ -692,7 +692,7 @@ setproviders(){ #自定义providers setproviders ;; d) - read -p "确认清空全部providers服务商?(1/0) > " res + read -p "确认清空全部链接?(1/0) > " res [ "$res" = "1" ] && rm -rf $CRASHDIR/configs/providers.cfg setproviders ;; @@ -1032,13 +1032,13 @@ set_core_config(){ #配置文件功能 echo ----------------------------------------------- echo -e "\033[30;47m ShellCrash配置文件管理\033[0m" echo ----------------------------------------------- - echo -e " 1 在线\033[32m生成$crashcore配置文件\033[0m" + echo -e " 1 在线\033[32m生成配置文件\033[0m(基于Subconverter订阅转换)" if [ -f "$CRASHDIR"/v2b_api.sh ];then echo -e " 2 登录\033[33m获取订阅(推荐!)\033[0m" else - echo -e " 2 在线\033[33m获取完整配置文件\033[0m" + echo -e " 2 在线\033[33m获取配置文件\033[0m(基于订阅提供者)" fi - echo -e " 3 本地\033[32m生成providers配置文件\033[0m" + echo -e " 3 本地\033[32m生成配置文件\033[0m(基于内核providers,推荐!)" echo -e " 4 本地\033[33m上传完整配置文件\033[0m" echo -e " 5 设置\033[36m自动更新\033[0m" echo -e " 6 \033[32m自定义\033[0m配置文件" @@ -2264,6 +2264,7 @@ userguide(){ setconfig crashcore "mihomo" setconfig redir_mod "$redir_mod" setconfig dns_mod mix + setconfig firewall_area '1' #默认启用绕过CN-IP setconfig cn_ip_route 已开启 #自动识别IPV6