我正在编写一个shell脚本(Bash),它接受多个参数,并对每个参数使用grep命令。示例: "./script.sh name1 name2 file.txt“命令grep将两次被称为"grep name1 file.txt”和"grep name2 file.txt“。
问题是当我提供多个选项(例如“-color -n")时,我将它们连接到一个字符串中,并将它们传递给grep,如下所示:
grep "$allParameters" "${arguments[counter]}" "$file" allParameters:是我在所有选项中连接的字符串“-color -n”
Arguments计数器:是否我必须在例如"echo“上使用grep的当前参数
文件:是我要搜索的文件吗?
输出是: grep:未识别选项‘--颜色-n’用法: grep选项.模式文件..。
注意:对于一个选项,它可以正常工作。
我还得再把绳子分开吗?如果是,如何将它们放在一行中使用grep命令?甚至有可能这样做吗?
发布于 2020-02-07 21:36:44
不要将多个选项/标志双引号作为一个选项。当您引用字符串时,grep将将其视为单个字符串。
例如:
有效:
grep -ins --color=auto "foo" inputfile有效:
 grep "-ins" "--color=auto" "foo" inputfile无效:
 grep "-ins --color=auto" "foo" inputfile因为没有像"-ins --color=auto"这样的单一选项
https://stackoverflow.com/questions/60121286
复制相似问题