Parece haver duas possibilidades:
-
Você está passando como parte do nome do arquivo. Isso normalmente não deveria acontecer. Isso pode acontecer se você tiver um arquivo com caracteres EOL incompatíveis. O Windows usa um par CRLF para finalizar uma linha em um arquivo de texto; O Unix usa apenas LF. Dependendo de como você editar o arquivo, você pode conseguir colocar o CRLF lá, e isso quebrará todos os tipos de coisas.
Outra variante disso é que, se out1 for realmente proveniente de uma variável (
make_ndx -o "$out1"
), você pode ter capturado um LF na variável. Fazerecho -n "$out1" | xxd -p
informará se você tiver; verifique se termina em0a
. -
make_ndx
está com bugs. O comando não é passado, inserindo-o internamente. Nada que você possa fazer de um script bash (bem, além demv
para corrigir o nome). Se você tiver origem emmake_ndx
, poderá corrigi-lo sozinho, caso contrário, será necessário entrar em contato com quem oferecer suporte.
Você pode verificar as terminações de linhas mistas de várias maneiras. Por exemplo, se você usar xxd
para fazer um despejo hexadecimal do script bash, 0x0d
será CR (\ r). 0x0a
é LF (\ n). Você não deve ver nenhum CR no arquivo.