我是 UNIX 新手,今天才在工作中开始使用它,但对 Java 有经验,并且有以下代码:
#/bin/bash
echo "Please enter a word:"
read word
grep -i $word $1 | cut -d',' -f1,2 | tr "," "-"> output
这工作正常,但我现在需要做的是检查读取单词时,它是否只包含字母,以及打印“无效输入!”中是否包含数字字符。消息并要求他们再次输入。我认为带有 if 语句的正则表达式将是执行此操作的简单方法,但我无法理解如何在 UNIX 中使用它们,因为我已经习惯了它们的 Java 应用程序。对此的任何帮助将不胜感激,因为我在搜索时找不到帮助,因为我发现 Linux 中所有带有正则表达式的解决方案仅处理是否全部为数字。
还有另一种方法。 Grep 退出0
如果找到匹配项,则可以测试退出代码:
echo "${word}" | grep -q '[0-9]'
if [ $? = 0 ]; then
echo 'Invalid input'
fi
This is /bin/sh
兼容的。
结合丹尼斯和约翰的建议,这变成
if echo "${word}" | grep '[0-9]' >/dev/null; then
echo 'Invalid input'
fi
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)