mirror of
https://github.com/juewuy/ShellCrash.git
synced 2026-03-13 00:41:20 +00:00
refactor(load_ddns): replace recursion with while loop
This commit is contained in:
@@ -135,44 +135,45 @@ rev_ddns_service() {
|
|||||||
sleep 1
|
sleep 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
load_ddns() {
|
load_ddns() {
|
||||||
ddns_dir=/etc/config/ddns
|
while true; do
|
||||||
tmp_dir="$TMPDIR"/ddns
|
ddns_dir=/etc/config/ddns
|
||||||
[ ! -f "$ddns_dir" ] && {
|
tmp_dir="$TMPDIR"/ddns
|
||||||
echo -e "\033[31m本脚本依赖OpenWrt内置的DDNS服务,当前设备无法运行,已退出!\033[0m"
|
[ ! -f "$ddns_dir" ] && {
|
||||||
sleep 1
|
echo -e "\033[31m本脚本依赖OpenWrt内置的DDNS服务,当前设备无法运行,已退出!\033[0m"
|
||||||
return 1
|
sleep 1
|
||||||
}
|
return 1
|
||||||
nr=0
|
}
|
||||||
cat "$ddns_dir" | grep 'config service' | awk '{print $3}' | sed "s/'//g" | sed 's/"//g' >"$tmp_dir"
|
nr=0
|
||||||
echo -----------------------------------------------
|
cat "$ddns_dir" | grep 'config service' | awk '{print $3}' | sed "s/'//g" | sed 's/"//g' >"$tmp_dir"
|
||||||
echo -e "列表 域名 启用 IP地址"
|
echo "-----------------------------------------------"
|
||||||
echo -----------------------------------------------
|
echo -e "列表 域名 启用 IP地址"
|
||||||
[ -s "$tmp_dir" ] && for service in $(cat "$tmp_dir"); do
|
echo "-----------------------------------------------"
|
||||||
#echo $service >>$tmp_dir
|
[ -s "$tmp_dir" ] && for service in $(cat "$tmp_dir"); do
|
||||||
nr=$((nr + 1))
|
# echo $service >>$tmp_dir
|
||||||
enabled=$(uci get ddns."$service".enabled 2>/dev/null)
|
nr=$((nr + 1))
|
||||||
domain=$(uci get ddns."$service".domain 2>/dev/null)
|
enabled=$(uci get ddns."$service".enabled 2>/dev/null)
|
||||||
local_ip=$(sed '1!G;h;$!d' /var/log/ddns/$service.log 2>/dev/null | grep -E 'Registered IP' | tail -1 | awk -F "'" '{print $2}' | tr -d "'\"")
|
domain=$(uci get ddns."$service".domain 2>/dev/null)
|
||||||
echo -e " $nr $domain $enabled $local_ip"
|
local_ip=$(sed '1!G;h;$!d' /var/log/ddns/"$service".log 2>/dev/null | grep -E 'Registered IP' | tail -1 | awk -F "'" '{print $2}' | tr -d "'\"")
|
||||||
done
|
echo -e " $nr $domain $enabled $local_ip"
|
||||||
echo -e " $((nr + 1)) 添加DDNS服务"
|
done
|
||||||
echo -e " 0 退出"
|
echo -e " $((nr + 1)) 添加DDNS服务"
|
||||||
echo -----------------------------------------------
|
echo -e " 0 退出"
|
||||||
read -p "请输入对应序号 > " num
|
echo "-----------------------------------------------"
|
||||||
if [ -z "$num" -o "$num" = 0 ]; then
|
read -r -p "请输入对应序号 > " num
|
||||||
i=
|
if [ -z "$num" ] || [ "$num" = 0 ]; then
|
||||||
elif [ "$num" -gt $nr ]; then
|
i=
|
||||||
set_ddns_type
|
rm -rf "$tmp_dir"
|
||||||
load_ddns
|
break
|
||||||
elif [ "$num" -gt 0 -a "$num" -le $nr ]; then
|
elif [ "$num" -gt $nr ]; then
|
||||||
service=$(cat $tmp_dir | sed -n "$num"p)
|
set_ddns_type
|
||||||
rev_ddns_service
|
elif [ "$num" -gt 0 ] && [ "$num" -le $nr ]; then
|
||||||
load_ddns
|
service=$(cat "$tmp_dir" | sed -n "$num"p)
|
||||||
else
|
rev_ddns_service
|
||||||
echo "请输入正确数字!" && load_ddns
|
else
|
||||||
fi
|
echo "请输入正确数字!"
|
||||||
rm -rf "$tmp_dir"
|
sleep 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user