如何判一个输入是有效的?
用户在输入的时候,有时候会输入的格式会不正确,会错误,或者不连续,或者语法语句不是有效的。 作为一个脚本开发者,你需要防止他们的发生(做好检测)
一种常见的情景是:在输入文件名(filname)或者s数据关键字的时候,你总是需要检测这些字是大写的,小写的,还是数字等。没有标点,没有特殊字符,没有空格,是不是认为这个就是有效的呢? 这个就是本章脚本的测试内容了。
以下是源代码:
(比较简单不做介绍了)
#/bin/bash
#本章内容为测试一个用户输入是否有效
function validAlphaInput()
{
compressed="$(echo $1 | sed -e 's/[^[:alnum:]]//g')"
#主要将非数字字母的数据进行替换
# echo $compressed
if [ "$compressed" != "$input" ]; then
return 1
else
return 0
fi
}
echo -n "please enter a filename or key: "
read input
if ! validAlphaInput "$input"; then
echo "Your input must consist of only letters and numbers" >&2
exit 1
else
echo "Your input is ok"
fi
用户在输入的时候,有时候会输入的格式会不正确,会错误,或者不连续,或者语法语句不是有效的。 作为一个脚本开发者,你需要防止他们的发生(做好检测)
一种常见的情景是:在输入文件名(filname)或者s数据关键字的时候,你总是需要检测这些字是大写的,小写的,还是数字等。没有标点,没有特殊字符,没有空格,是不是认为这个就是有效的呢? 这个就是本章脚本的测试内容了。
以下是源代码:
(比较简单不做介绍了)
#/bin/bash
#本章内容为测试一个用户输入是否有效
function validAlphaInput()
{
compressed="$(echo $1 | sed -e 's/[^[:alnum:]]//g')"
#主要将非数字字母的数据进行替换
# echo $compressed
if [ "$compressed" != "$input" ]; then
return 1
else
return 0
fi
}
echo -n "please enter a filename or key: "
read input
if ! validAlphaInput "$input"; then
echo "Your input must consist of only letters and numbers" >&2
exit 1
else
echo "Your input is ok"
fi