Grep命令被特殊字符反转?

use*_*206 3 unix bash shell grep

我正在尝试编写一个bash脚本,它将在txt文件中搜索另一个存储在变量中的txt文件中的字符串.但是字符串中有许多特殊字符,由于某种原因,它似乎破坏了grep命令.字符串如下:Sometxt ^/someurl /?$ http://somewebsite.com/

我正在使用的grep命令是

grep -v "$string" file.txt >> new_file.txt
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用,如果我使用以下命令回显实际的grep命令:

echo "grep -v \"$string\" file.txt >> new_file.txt"
Run Code Online (Sandbox Code Playgroud)

我得到了一个混乱的输出.

如果我输入grep命令手册并输入实际的字符串,它工作正常,所以我假设我的shell正在尝试扩展特殊字符,但我不知道如何在字符串中转义所有字符串.

有人有主意吗?

谢谢.

seh*_*ehe 5

尝试fgrep(或grep -F)

默认情况下,grep的解释为基本正则表达式搜索模式,赋予特殊的含义相同的符号.,$,^ []