如何在 Bash 中传递包含“-”的参数?

如何在 Bash 中传递包含“-”的参数?

我尝试使用该命令来搜索文件中的grep字符串。-R但该命令认为,我正在尝试放弃诸如-i忽略大小写之类的选项。

答案1

-e的选项是grep明确地说“下一个参数是模式”:

grep -e -R file

-R上面的代码将在名为 的文件中搜索行匹配file

-e选项可能会在命令行上出现多次,并将grep使用所有给定的模式(您将得到与任何的模式)。

答案2

以及前面提到的答案一样,--用于表示选项的结束,允许您随后使用可能类似于参数的模式,而不会被不期望地解释:

$ echo -R | grep -- '-R'
-R

答案3

尝试逃脱那些角色grep \\-R myfile.txt

例子:

$ touch test.txt
$ echo "-R" >> ./test.txt
$ cat test.txt
-R
$ grep \\-R ./test.txt
-R

相关内容