Eu tenho um script, onde há uma linha:
eval for i in \{"$1".."$2"\}\; do [ ! -e "$3"/\$i.\* ] \&\& echo \"\$i\" \; done \| shuf \| mycommand "$3"
que significa: primeiro crie uma seqüência de números onde não existem arquivos com nomes após os números, canalize-os para shuf
e, em seguida, canalize-os para mycommand
, que é um executável ELF.
Na maioria das vezes, o script é executado corretamente, mas às vezes ele recebe um erro de falha de segmento, ou seja, o erro de falha do segmento não é reproduzível.
$ myscript 0001 734 XMJ
/home/tim/bin/myscript: line 25: 10170 Exit 1 for i in {0001..734};
do
[ ! -e XMJ/$i.* ] && echo "$i";
done
10171 Done | shuf
10172 Segmentation fault (core dumped) | mycommand XMJ
Isso significa que a falha do segmento é gerada ao executar shuf
?
O que podemos deduzir da mensagem de erro e, possivelmente, corrigi-la?
Obrigado.