在我的 bash 脚本的 header 中,我必须询问用户名和他的 IP 地址。
我需要以这种方式验证条目:
- 用户名必须存储在
name
变量中,用下划线代替他的空格。例如,如果用户点击"Albert Smith"
,我必须将"Albert_Smith"
存储到我的变量name
中。 - 对于ip地址,我需要知道ip地址是否符合格式。 如果格式不好,我必须报错并提示用户输入一个好的ip地址才能继续操作。
我知道我需要使用“阅读”,但我不知道要实现我的短脚本(替换和验证)。 提前致谢:)
最佳答案
还有一种方式。仅限 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"
关于bash - bash 中的变量验证(名称和 IP 地址),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13015206/