修改您的程序,以便在找不到匹配的名称时显示一条消息:“名称 'xyz' 不在目录中”。您可以使用“if”语句来检查 $? 的值?查看 grep 命令是否成功(记住“0”表示成功)。如果 grep 不成功,则回显该消息(其中包括 $name 的值)。
原始代码是:
#!/bin/bash
name=$1
if [ "$name" = "" ]
then echo -n "Enter a name to search for: "
read name
fi
grep -I $name ~uli101/2017a/phonebook
我基本上必须使用上面的说明将 IF 语句插入到程序中。我尝试过很多不同的事情,例如:
if [ $? = 1 ]
then echo -n "Name 'xyz' not in directory"
fi
但它不接受答案。请帮我解决这个问题。如有任何帮助,我们将不胜感激。
这对我有用,请尝试:
#!/bin/bash
name=$1
if [ "$name" = "" ]; then
echo -n "Enter a name to search for: "
read name
fi
grep -I $name phonebook
if [ $? = 1 ]; then
echo "Name '${name}' not in directory"
fi
或者你可以将最后一个 IF 更改为:
grep -I $name phonebook && echo -n "Name not in directory"
我是一名优秀的程序员,十分优秀!