我正在编写一个相当冗长的脚本(或者我认为很长的脚本 - 你可以在几个小时内完成它)。我基本上有一个文件(名为.restore.info),其中包含名称文件。在脚本的一部分,我想测试“如果找不到.restore.info中的文件名,那么说”错误:恢复的文件不存在“。抱歉,如果这对你们没有意义(对我来说,它确实在宏观方案中)。所以如果在命令行中输入:
sh MYSCRIPT filename
它将在.restore.info文件中搜索字符串文件名,如果找不到任何内容,则会产生错误消息。
基本上,我需要将此编码的顶行翻译成UNIX bash语句,并且实际上有意义!:
If grep $1 .restore.info returns an exist status of 1; then
echo “Filename does not exist!”
fi
提前致谢!请问我是否需要我更清楚地澄清任何内容,因为我知道我不是最好的解释员,我会在不到一分钟的时间内回复你! (当然会给出代表和最佳答案!)
答案 0 :(得分:2)
您可能只关心grep
是否以非零退出状态退出:
if ! grep -q "$1" .restore.info; then
echo "Filename does not exist!"
fi
但是如果你真的关心特定的退出状态(在这种情况下为1):
if ! grep -q "$1" .restore.info && [[ $? -eq 1 ]]; then
echo "Filename does not exist!"
fi
答案 1 :(得分:0)
使用grep -q
grep -q "filename" .restore.info && echo "found match"
或
! grep -q "filename" .restore.info && echo "not found"
答案 2 :(得分:0)
grep -l 'filename' .restore.info
if [ $? = 0 ];then
echo "found it"
else
echo "not found"
fi