perf: optimize port validation with efficient grep usage

- Use 'grep -q' to avoid unnecessary output and sub-shell usage
This commit is contained in:
Sofia
2026-01-18 09:14:43 +08:00
committed by GitHub
parent 588afd7381
commit 180629c8dd

View File

@@ -1,17 +1,17 @@
#!/bin/sh
# Copyright (C) Juewuy
check_port(){
if [ "$1" -gt 65535 -o "$1" -le 1 ]; then
echo -e "\033[31m输入错误请输入正确的数值(1-65535)\033[0m"
return 1
elif [ -n "$(echo "|$mix_port|$redir_port|$dns_port|$db_port|" | grep "|$1|")" ]; then
echo -e "\033[31m输入错误请不要输入重复的端口\033[0m"
return 1
elif [ -n "$(netstat -ntul | grep -E ":$1[[:space:]]")" ]; then
echo -e "\033[31m当前端口已被其他进程占用请重新输入\033[0m"
return 1
else
return 0
fi
check_port() {
if [ "$1" -gt 65535 ] || [ "$1" -le 1 ]; then
echo -e "\033[31m输入错误请输入正确的数值(1-65535)\033[0m"
return 1
elif echo "|$mix_port|$redir_port|$dns_port|$db_port|" | grep -q "|$1|"; then
echo -e "\033[31m输入错误请不要输入重复的端口\033[0m"
return 1
elif netstat -ntul | grep -q ":$1[[:space:]]"; then
echo -e "\033[31m当前端口已被其他进程占用请重新输入\033[0m"
return 1
else
return 0
fi
}