pi-*_*-2r 1 variables validation bash
在我的bash脚本的标题中,我必须询问用户名和他的IP地址.
我需要以这种方式验证条目:
name
变量中,并用下划线替换其空间.对于用户点击的示例"Albert Smith"
,我必须存储"Albert_Smith"
到我的变量中name
.我知道我需要使用"阅读",但我不知道要实现我的短脚本(替换和验证).预先感谢 :)
还有另一种方式.仅限Bash:
#!/bin/bash
read name
name=${name// /_}
read ip
if [[ "$ip" =~ ^([0-9]{1,3})[.]([0-9]{1,3})[.]([0-9]{1,3})[.]([0-9]{1,3})$ ]]
then
for (( i=1; i<${#BASH_REMATCH[@]}; ++i ))
do
(( ${BASH_REMATCH[$i]} <= 255 )) || { echo "bad ip" >&2; exit 1; }
done
else
echo "bad ip" >&2
exit 1;
fi
echo "name:$name"
echo "ip:$ip"
Run Code Online (Sandbox Code Playgroud)
不完全是问题的答案,但对于那些喜欢“单行”的人来说,IP 验证正则表达式:
[[ "$IP" =~ ^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$ ]] && echo "valid" || echo "invalid"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8059 次 |
最近记录: |