Estou no Linux Mint 18.2 com o GNU bash, versão 4.3.48 (1) -release (x86_64-pc-linux-gnu).
Gostaria de redefinir sha256sum
com minha função definida em .bash_aliases
para mostrar o progresso, porque eu o uso para arquivos com mais de 100 GB.
A função segue:
function sha256sum {
if [ -z "$1" ]
then
{
\sha256sum --help
}
else
{
pv $1 | \sha256sum -b
}
fi
}
Mas há alguns culpados, que não posso explicar.
Por um lado, ele se comporta de forma inesperada, de alguma forma eu consegui forçá-lo a "comer" o parâmetro.
Especificamente, o seguinte arquivo:
-rw-r--r-- 1 root root 2.0K Jul 24 12:29 testdisk.log
Agora, exibe o tamanho do arquivo, sem fim:
vlastimil@vb-nb-mint ~ $ sha256sum testdisk.log
1.92KiB 0:00:00 [40.8MiB/s] [====================================================>] 100%
1.92KiB
1.92KiB
1.92KiB
1.92KiB
1.92KiB
1.92KiB
1.92KiB
1.92KiB
1.92KiB
1.92KiB
1.92KiB
...
...
...
^C
[1]+ Stopped pv $1 | \sha256sum -b
O que estou fazendo de errado? Eu tentei estrutura diferente, com e sem chaves, com e sem ponto e vírgula, e como por uma hora nenhum resultado melhor do que este.
EDIT1:
Removendo o sinal \
da aparência da função:
function sha256sum {
if [ -z "$1" ]
then
{
sha256sum --help
}
else
{
pv "$1" | sha256sum -b
}
fi
}
Resultados em:
1.92KiB 0:00:00 [56.8MiB/s] [====================================================>] 100%
1.92KiB
1.92KiB
1.92KiB
1.92KiB
...
...
...
^C
[2]+ Stopped pv "$1" | sha256sum -b