Как прокомментировал @EricRenouf , если все, что идет к ID
, имеет возврат каретки(\r
)в конце, это искажает вывод, перемещая курсор в начало строки, после чего остальные перезапишут ведущие части.
Использование printf %q
для просмотра специальных символов:
ID=$'abcdef\r'
echo "$ID/123"
printf "%q\n" "$ID/123"
получаем:
/123ef
$'abcdef\r/123'
Вы можете использовать расширения параметров, чтобы удалить окончательный CR:
ID=${ID%$'\r'}
echo "$ID/123"
printf "%q\n" "$ID/123"
($'..'
— это нестандартный IIRC, но он работает в Bash и других.)