正則表達式匹配域名
^(http(s)?:\/\/)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+(:[0-9]{1,5})?$
在shell中使用
read -p "請輸入域名: " input_domain
echo "域名為: $input_domain"
flag=$(echo $input_domain | gawk '/^(http(s)?:\/\/)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+(:[0-9]{1,5})?$/{print $0}')
if [ ! -n "${flag}" ]; then
echo "請輸入正確的域名"
fi
循環
domain_flag=''
until [ "$domain_flag" != '' ]
do
read -p "請輸入域名: " input_domain
echo "域名為: $input_domain"
domain_flag=$(echo $input_domain | gawk '/^(http(s)?:\/\/)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+(:[0-9]{1,5})?$/{print $0}')
if [ ! -n "${domain_flag}" ]; then
echo "域名有誤,請重新輸入!!!"
fi
done