繁体   English   中英

我如何从命令行检索准确的输入到bash?

[英]How do I retrieve exact input to bash from command line?

我如何让bash从命令行直接读取输入? 我希望保留精确的输入,因此,如果有引号,我想保留它们。 我可以通过使用egrep来读取文件,然后清理输入,从而完成我想做的事情,如下所示:

egrep '/.*/' filename |
sed 's/\(.*\)['"'"']\(.*\) \(.*\)['"'"']\(.*\)/\1'"\'"'\2" "\3'"\'"'\4/g'

其中“ filename”包含此行

sed 's/foo/foo bar/g' file

这给了我期望的输出:

sed 's/foo/foo" "bar/g' file

这里的问题是我无法回显“ $ @”,因为bash会解释引号。 我想要文字输入而不必从文件中读取。

您可以使用ANSI-C引用:

bash filename $'sed \'s/foo/foo" "bar/g\' file'

请注意,您需要转义单引号。 这将产生:

sed 's/foo/foo" "bar/g' file

一说

echo "$@"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM