M S*_*ker 1 bash stdin single-quotes
例子:
$ foo="text with 'single quotes'"
$ echo $foo
Run Code Online (Sandbox Code Playgroud)
给我
text with 'single quotes'
Run Code Online (Sandbox Code Playgroud)
这是我想要的输出,但我想传递$foo具有相同结果的标准输入。类似于以下之一:
$ xargs echo <<< $foo
$ echo $foo | xargs echo
Run Code Online (Sandbox Code Playgroud)
这两个都给我
text with single quotes
Run Code Online (Sandbox Code Playgroud)
有没有办法保留单引号而不控制 foo 的内容?
我正在寻找一种无论命令如何都有效的解决方案,我选择它是xargs echo因为我认为它简单地显示了行为。该解决方案可能不存在,但如果有人有任何提示,将不胜感激!
默认情况下 xargs 将解析引号和反斜杠。用于-d设置显式项目分隔符并禁用此行为,这是很少需要的。
$ xargs -d '\n' echo <<< "$foo"
text with 'single quotes'
Run Code Online (Sandbox Code Playgroud)