Considere o seguinte nome de script (um pouco bobo) 'test1.sh':
#/bin/bash
#
sleep 10 &
echo sleep pid = $!
pkill sleep
Quando o executo, recebo não apenas a saída do eco, mas também o relatório do bash sobre a morte do sono no stderr:
$ ./test1.sh
sleep pid = 3551
./test1.sh: line 5: 3551 Terminated sleep 10
Nesse caso, eu gostaria de suprimir a impressão em stderr. Eu sei que posso fazer isso na linha de comando, como em:
$ ./test1.sh 2> /dev/null
... mas existe uma maneira de suprimi-lo de dentro do script? (Eu sei que poderia envolvê-lo em um segundo script e fazer com que o wrapper o redirecionasse, mas deve haver algo mais fácil ...)