Em C, você pode redirecionar stdout para algum lugar quando um programa estiver em execução, por exemplo:
int fd = open("some_file", O_RDWR);
dup2(fd, STDOUT_FILENO);
printf("write to some_file\n");
Posso conseguir isso no bash sem redirecionar o stdout ao executar um script bash ( ./script.sh > some_file
)?
Você pode usar um redirecionamento em torno de qualquer comando, incluindo comandos compostos. Por exemplo:
Você pode fazer um redirecionamento permanente (que se aplica até o final do script ou até ser substituído por outro redirecionamento) chamando o
exec
builtin com um redirecionamento, mas sem comando. Por exemplo:Esses recursos estão disponíveis em todos os shells do estilo Bourne/POSIX, incluindo o bash.