如何让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会解释引号。我想要文字输入,而不必从文件中读取。
答案 0 :(得分:1)
您可以使用ANSI-C引用:
bash filename $'sed \'s/foo/foo" "bar/g\' file'
请注意,您需要转义单引号。这会产生:
sed 's/foo/foo" "bar/g' file
说
echo "$@"