尝试在命令行验证字符串。每个字符应该在A-Z,a-z,0-9,特殊字符(逗号,下划线,句号)之间。如果有任何其他字符,则显示“无效”否则有效“
例如:
echo "hello123.txt" returns "valid"
echo "hello?.txt" returns "invalid"
echo "HEllo_hello" returns "valid"
谢谢。
答案 0 :(得分:1)
如果您有合适的grep版本,可以使用grep -v
来确定:
echo "test" | grep -v "^[A-Za-z0-9,_.]*$" > /dev/null
echo $? # 1
echo "@test" | grep -v "^[A-Za-z0-9,_.]*$" > /dev/null
echo $? # 0
答案 1 :(得分:0)
在bash中,您可以在[[ ... ]]
中的==运算符的右侧使用模式匹配:
#!/bin/bash
for string in 'hello123.txt' 'hello?.txt' 'HEllo_hello' ; do
if [[ $string == +([A-Za-z0-9,_.]) ]] ; then
echo valid
else
echo invalid
fi
done
答案 2 :(得分:0)
您可以创建一个脚本,例如:
#!/bin/bash
if [[ $1 = "" ]] ; then
echo "Please run the following command with a string at the end...\
Example= ./script.bash testing"
exit 2
echo "$1" | grep -qi "^[a-z0-9.,_]*$"
if [[ $? = "0" ]] ; then
echo "Valid"
else
echo "Invalid"
fi
exit 0