尝试验证字符串中只有小写,大写或数字。Bash需要测试字母数字字符串
if ! [[ "$TITLE" =~ ^[a-zA-Z0-9]+$ ]]; then echo "INVALID"; fi
想法?
* UPDATE *
变量TITLE目前只有大写文字,所以应该通过并没有什么应该被输出。但是,如果我为TITLE添加一个特殊字符,则IF语句应该捕捉它并回应INVALID。目前它不起作用。它总是回声无效。我认为这是因为我的正则表达式是错误的。我想我写的方式,它寻找一个包含所有三个标题的标题。
猛砸4.2.25
的想法是,用户应该可以,只要它仅包含大写字母,小写字母或数字加任何头衔。所有其他角色都应该失败。
* UPDATE *
如果TITLE = ThisIsAValidTitle它回声无效。
如果TITLE = ThisIs @@@@@@@ InvalidTitle它也是回声无效。
*解*
奇怪的,以及它开始工作时,我简化它归结为这样:
TEST="Valid0"
if ! [[ "$TEST" =~ [^a-zA-Z0-9] ]]; then
echo "VALID"
else
echo "INVALID"
fi
*真正的解决方案*
我的变量有空间在它... DUH
对不起,这个家伙......
*最终的解决方案*
这标题
if ! [[ "$TITLE" =~ [^a-zA-Z0-9\ ] ]]; then
echo "VALID"
else
echo "INVALID"
fi
结果是什么?你在期待什么? –
变量TITLE目前只有大写文本,所以它应该通过并且不应输出任何内容。但是,如果我为TITLE添加一个特殊字符,则IF语句应该捕捉它并回应INVALID。目前它不起作用。它总是回声无效。我认为这是因为我的正则表达式是错误的。我想我写的方式,它寻找一个包含所有三个标题的标题。 – Atomiklan
似乎很适合我。你使用的是什么版本的bash? –