我想这样的事情在bash:嵌套报价
alias foo='bar="$(echo hello world | grep \"hello world\")"; echo $bar;'; foo
预期输出:你好世界
输出继电器:grep的:世界“:没有这样的文件或目录
外引号必须是单引号,双引号$ bar应该是空的。
T他接下来的引号必须是双引号,单引号$()不会扩展。
内部引号可以是两种类型的引号,但单引号不允许单引号内部。
如何实现此目的?
我想这样的事情在bash:嵌套报价
alias foo='bar="$(echo hello world | grep \"hello world\")"; echo $bar;'; foo
预期输出:你好世界
输出继电器:grep的:世界“:没有这样的文件或目录
外引号必须是单引号,双引号$ bar应该是空的。
T他接下来的引号必须是双引号,单引号$()不会扩展。
内部引号可以是两种类型的引号,但单引号不允许单引号内部。
如何实现此目的?
内$()
的东西,代表一个子shell,所以你被允许放在里面
alias foo='bar="$(echo testing hello world | grep "hello world")"; echo "$bar"'
逃生的空间
alias foo='bar="$(echo hello world | grep hello\ world)"; echo $bar;'
这是一个有点不清楚是什么“这样的事情”的意思,但要实现什么似乎是这里的点最简单的方法是一个简单的函数:
foo() {
echo 'hello world' | grep 'hello world'
}
foo
各地$()
双引号是没有必要的:
alias foo='bar=$(echo hello world | grep "hello world"); echo $bar;'
foo
# Output:
hello world
是否非转义双引号不可能逃避报价,说我想做:'别名foo ='baz =“hello world”; bar =“$(echo hello world | grep \”$ baz \“)”; echo $ bar;'; foo' – Tyilo