2

我正在写一个相当长的脚本(或者我认为很长的脚本——你可能会在几个小时内完成)。我基本上有一个文件(名为 .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

提前致谢!请问我是否需要我更清楚地澄清任何事情,因为我知道我不是最好的解释者,我会在一分钟内回复您!(+rep 和最佳答案当然会给出!)

4

3 回答 3

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
于 2013-06-19T20:30:41.090 回答
0

采用grep -q

grep -q "filename" .restore.info && echo "found match"

或者

! grep -q "filename" .restore.info && echo "not found"
于 2013-06-19T20:30:16.947 回答
0
grep -l 'filename' .restore.info
if [ $? = 0 ];then
   echo "found it"
else 
  echo "not found"
fi
于 2013-06-19T21:17:34.380 回答