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

Jen*_*nny 3 scripts grep

我正在运行一个我想检查是否miniconda已经安装的软件。因此,我.bashrc使用grep命令检查了文件中的“miniconda”或“anaconda”字符串。但是,它还会找到在.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"
Run Code Online (Sandbox Code Playgroud)

我已经通过在.bashrc文件中添加以下几行来测试这一点。

#anaconda
#miniconda 
Run Code Online (Sandbox Code Playgroud)

终端输出

jen@scs400:/scratch$ source bash_script.sh     
miniconda is found in .bashrc
Run Code Online (Sandbox Code Playgroud)

Com*_*mar 6

尝试这个:

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