我写了一个名为电话4像下面这样:
# #!/bin/bash
name=$1
if ["$name" = ""]
then echo -n "Enter a name to search for: "
read name
fi
grep -i $name ~uli101/2017c/phonebook
但现在我想在脚本中进行一些更改,以便如果我使用命令电话4xyz如果未找到匹配的名称,则会显示相应的消息:“名称‘xyz’不在目录中”。
我想使用“if”语句来检查 $? 的值?查看 grep 命令是否成功(记住,“0”表示成功)。如果 grep 不成功,则回显该消息(其中包括 $name 的值)。
确保这适用于命令行参数和从用户读取的名称,并且我需要将消息完全用作“名称'xyz'不在目录中”。有人可以帮我解决这个问题吗?
答案1
基本上,您知道如何编写 if 语句,您的脚本中有一个 if 语句。
现在,您应该通过谷歌搜索来了解如何$?
与进行比较0
,并将其放入您的 if 语句中。$?
不应该匹配0
。
那么你,你需要echo "Name 'xyz' not in directory"
if $?
is NOT 0
。如何将 'xyz' 替换为$name
?应该很明显吧?
这确实读起来像是某种作业……是的,我可以写一个完整的答案,但这对你没有帮助。
授人以鱼,可以养他一日;授人以鱼,可以养他一生。