在UNIX bash脚本中编写if语句需要一些帮助吗 我写了一篇相当冗长的剧本(或者我认为冗长的话——你可能在几个小时内就可以完成)。我基本上有一个文件(名为.restore.info),其中包含名称文件。在脚本的一部分中,我想测试“如果在.restore.info中找不到文件名,则会说”错误:还原的文件不存在“。如果这对你们来说没有意义,我深表歉意(对我来说,这在总体方案中是有意义的)。因此,如果在命令行中键入以下内容: sh MYSCRIPT filename

在UNIX bash脚本中编写if语句需要一些帮助吗 我写了一篇相当冗长的剧本(或者我认为冗长的话——你可能在几个小时内就可以完成)。我基本上有一个文件(名为.restore.info),其中包含名称文件。在脚本的一部分中,我想测试“如果在.restore.info中找不到文件名,则会说”错误:还原的文件不存在“。如果这对你们来说没有意义,我深表歉意(对我来说,这在总体方案中是有意义的)。因此,如果在命令行中键入以下内容: sh MYSCRIPT filename,bash,unix,if-statement,grep,sh,Bash,Unix,If Statement,Grep,Sh,它将在.restore.info文件中搜索字符串文件名,如果找不到任何内容,它将生成一条错误消息 基本上,我需要将这段代码的顶行翻译成一个UNIX bash语句和一些真正有意义的东西!: If grep $1 .restore.info returns an exist status of 1; then echo “Filename does not exist!” fi 提前谢谢!请问我是否需要我更清楚地澄清任何事情,因为我知道我不是最好的解释者,我会在不到一分钟内给你回复!(+代表和

它将在.restore.info文件中搜索字符串文件名,如果找不到任何内容,它将生成一条错误消息

基本上,我需要将这段代码的顶行翻译成一个UNIX bash语句和一些真正有意义的东西!:

If grep $1 .restore.info returns an exist status of 1; then
  echo “Filename does not exist!”
fi

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

使用
grep-q

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


您可能只关心
grep
以非零退出状态退出:

if ! grep -q "$1" .restore.info; then
    echo "Filename does not exist!"
fi
但如果您确实关心特定的退出状态(本例中为1):


您不想将
grep
放入
$()
if ! grep -q "$1" .restore.info; then
    echo "Filename does not exist!"
fi
if ! grep -q "$1" .restore.info && [[ $? -eq 1 ]]; then
    echo "Filename does not exist!"
fi
grep -l 'filename' .restore.info
if [ $? = 0 ];then
   echo "found it"
else 
  echo "not found"
fi