将 bash 代码块放入子 shell 中

将 bash 代码块放入子 shell 中

我希望这可能有效:

echo "starting";
{
 cd "$HOME/foobar"
 echo "rolo" > file.txt
}
echo "ending";

子 shell 代码将出现在大括号之间,但该语法似乎不正确,我该怎么做?

答案1

根据bash 文档您可以使用括号或大括号进行分组,但如果使用括号,您将得到一个子 shell。因此,要在子 shell 中运行命令,请使用:

echo "starting"
(
    cd "$HOME/foobar"
    echo "rolo" > file.txt
)
echo "ending"

不过对于这个例子,你可以

echo "rolo" > "$HOME/foobar/file.txt"

相关内容