Como @EricRenouf comentou, se o que for para ID
tiver um retorno de carro ( \r
) no final, ele irá mangle a saída, movendo o cursor para o início da seqüência de caracteres, após o qual o resto irá substituir as partes principais.
Usando printf %q
para ver os caracteres especiais:
ID=$'abcdef\r'
echo "$ID/123"
printf "%q\n" "$ID/123"
temos:
/123ef
$'abcdef\r/123'
Você pode usar expansões de parâmetro para remover o CR final:
ID=${ID%$'\r'}
echo "$ID/123"
printf "%q\n" "$ID/123"
( $'..'
é IIRC fora do padrão, mas funciona no Bash e em outros.)