我如何从字面上理解shell输入?(即保持报价等完整)

Top*_*der 1 unix bash shell grep

我正在尝试编写一个bash脚本,以便我将用来替换我的egrep命令.我希望能够获取与我的脚本完全相同的输入并将其提供给egrep.即

#!/bin/bash
PARAMS=$@
`egrep "$PARAMS"`
Run Code Online (Sandbox Code Playgroud)

但我注意到,如果我回应我正在执行的内容,引号已被删除如下:

./customEgrep -nr"grep my ish"*

回报

egrep -nr grep my ish(来自展开的*的文件列表)

有没有办法让我可以直接输入输入,以便我可以直接使用egrep?

Mar*_*eed 5

你要这个:

egrep "$@"
Run Code Online (Sandbox Code Playgroud)

您键入的引号不会传递给脚本; 它们用于确定单词边界.使用"$@"保留这些单词边界,因此egrep将获得与直接运行它时相同的参数.但是如果你echo的论点,你仍然不会看到引号.