[英]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.