Coloca o bloco de código bash em um subshell

1

Eu esperava que isso funcionasse:

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

onde o código de subshell aconteceria entre as chaves, mas essa sintaxe parece incorreta, como posso fazer isso?

    
por Alexander Mills 21.10.2017 / 20:08

1 resposta

1

Para o documento bash , você pode usar parênteses ou chaves para agrupar , mas se você usar parênteses, você receberá uma subchave. Então, para executar seus comandos em um subshell use:

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

embora para este exemplo, você poderia apenas

echo "rolo" > "$HOME/foobar/file.txt"
    
por 21.10.2017 / 20:14