【发布时间】:2017-01-15 17:47:48
【问题描述】:
我对 shell 脚本完全陌生,我一直在阅读有关如何使用不同 grep 函数的教程。不幸的是,大部分教程通常都在讨论从文本文件中提取特定模式的字符串。
但是,我正在尝试在文本文件中搜索两个确切的字符串。
比如这里是我BookDB.txt的内容:
Three Little Pigs : Mary Jane
Cinderella : Paul Johnson
我尝试使用read 函数获取用户输入
echo Title :
read Title
echo Author :
read Author
接下来,我使用了grep 命令,我从这个link 获得了帮助来获取字符串并检查它是否存在于BookDB.txt 文件中,并将echo $? 命令输出分配到一个变量中以显示出来一些消息。
grep -w "$Title" BookDB.txt
check1=`echo $?`
grep -w "$Author" BookDB.txt
check2=`echo $?`
if [ "$check1" -eq 0 ] && [ "$check2" -eq 0 ]; then
echo Found
else
echo Not Found
fi
即使用户键入Three 作为Title 和Mary 作为Author,echo$? 命令仍然返回0。无论何时,它返回0,它显示来自文本文件的信息这不是必需的。
【问题讨论】:
-
添加
-q选项以保持安静,如果您不想打印任何信息。