Você chegou perto, mas nenhuma delas é a sintaxe correta para o shell TENEX C.
Lembre-se: O shell de login interativo que você está usando no FreeBSD, a menos que você o tenha alterado, é o shell TENEX C. Seu redirecionamento do comando sudo
tem que usar a sintaxe de redirecionamento do shell TENEX C. Não importa se você está executando o shell Bourne Again via sudo
. Isso só é determinado após o redirecionamento ter ocorrido e sudo
já ter sido executado .
Isto:
% sudo bash some_file.sh arg1 >/dev/null 2>&1
é efetivamente igual a
% >/dev/null >&1 sudo bash some_file.sh arg1 2
, que tenta redirecionar a saída padrão duas vezes para dois locais diferentes.
Isto:
% sudo bash some_file.sh arg1 &> /dev/null
é realmente
% sudo bash some_file.sh arg1 & > /dev/null
e será reescrito como tal em seu histórico de comandos. São dois comandos unidos por
&
,
sudo
e um comando sem nome nem argumentos. Este último não é permitido no shell TENEX C.
Isto é como redirecionar a saída padrão e o erro padrão para /dev/null
no shell TENEX C:
% sudo bash some_file.sh arg1 >& /dev/null