Os terminais atualmente são mais lentos do que costumavam ser, principalmente porque as placas gráficas não se importam mais com a aceleração 2D. Então, de fato, imprimir em um terminal pode atrasar um script, particularmente quando a rolagem está envolvida.
Consequentemente, ./script.sh
é mais lento que ./script.sh >script.log
, que por sua vez é mais lento que /script.sh >/dev/null
, porque este último envolve menos trabalho. No entanto, se isso faz diferença suficiente para qualquer finalidade prática, depende da quantidade de saída que o seu script produz e da velocidade. Se o seu script escrever 3 linhas e saídas, ou se imprimir 3 páginas em intervalos de algumas horas, provavelmente não precisará se preocupar com redirecionamentos.
Editar: alguns testes de desempenho rápidos (e completamente interrompidos):
-
Em um console Linux, 240x75:
$ time (for i in {1..100000}; do echo $i 01234567890123456789012345678901234567890123456789; done) real 3m52.053s user 0m0.617s sys 3m51.442s
-
Em um
xterm
, 260x78:$ time (for i in {1..100000}; do echo $i 01234567890123456789012345678901234567890123456789; done) real 0m1.367s user 0m0.507s sys 0m0.104s
-
Redirecionar para um arquivo, em um disco Samsung SSD 850 PRO 512GB:
$ time (for i in {1..100000}; do echo $i 01234567890123456789012345678901234567890123456789; done >file) real 0m0.532s user 0m0.464s sys 0m0.068s
-
Redirecionar para
/dev/null
:$ time (for i in {1..100000}; do echo $i 01234567890123456789012345678901234567890123456789; done >/dev/null) real 0m0.448s user 0m0.432s sys 0m0.016s