【发布时间】:2021-12-17 14:00:51
【问题描述】:
在 bash 中,选择使用 ( ... ) 或 { ... } 之间是否有任何区别,就像在我的测试用例中一样,这两种产品的预期结果相同:
# using round brackets
(
echo 'hello'
echo 'world'
) | rev
# using squiggly brackets
{
echo 'hello'
echo 'world'
} | rev
# result:
olleh
dlrow
也许这个测试用例在它们相同的情况下,但是我会选择一种语法而不是另一种的因素?
【问题讨论】:
-
你是问
( ){ }在管道中<here> | something,还是一般来说有区别? -
"但是我会选择一种语法而不是另一种语法的因素" - 如果我想在后台开始一些繁重的处理,我会使用
( ... ) > result &pid=$!在继续主流程的同时。当我需要结果时,我可以做wait $pid然后阅读result。 Afaik,{ ... }不可能做到这一点 - 如果我是正确的,通常会在$!中返回一个线程 id,而你不能在wait获得。 -
@KamilCuk 你是对的。我使用了错误的格式。 shellcheck 救援(一如既往):-)
标签: bash