如何避免 grep 命令在源文件中找到注释掉的字符串?

如何避免 grep 命令在源文件中找到注释掉的字符串?

我正在运行一个软件,我想检查miniconda它是否已经安装。因此,我使用命令检查了.bashrc文件中是否存在“miniconda”或“anaconda”字符串grep。但是,它还发现文件中有上述任一字符串被注释掉.bashrc,而我并不想有这些字符串。我该如何解决这个问题?我的相关部分bashscript如下所示。

#Finding if miniconda or anaconda string is in bashrc  
if grep -qF -e miniconda -e anaconda "$HOME"/.bashrc ;then    
  echo "miniconda is found in .bashrc"

我已通过在.bashrc文件中添加以下行对此进行了测试。

#anaconda
#miniconda 

终端输出

jen@scs400:/scratch$ source bash_script.sh     
miniconda is found in .bashrc

答案1

尝试这个:

if grep -qwE '^[^#]*(ana|mini)conda' "$HOME"/.bashrc ;then
    echo "miniconda/anaconda is found in .bashrc"
fi

相关内容