我想在bash中这样的事情:
alias foo='bar="$(echo hello world | grep \"hello world\")"; echo $bar;'; foo
Run Code Online (Sandbox Code Playgroud)
预期输出:你好世界
输出:grep:world":没有这样的文件或目录
外部引号必须是单引号,双引号$ bar将为空.
下一个引号必须是双引号,单引号$()不会扩展.
内部引号可以是引号类型,但单引号不允许单引号内部引号.
我怎么做到这一点?
gle*_*man 34
里面的东西$()代表一个子shell,所以你可以在里面放置未转义的双引号
alias foo='bar="$(echo testing hello world | grep "hello world")"; echo "$bar"'
Run Code Online (Sandbox Code Playgroud)
有点不清楚"像这样的东西"意味着什么,但实现这里似乎重点的最简单的方法是一个简单的功能:
foo() {
echo 'hello world' | grep 'hello world'
}
foo
Run Code Online (Sandbox Code Playgroud)