Как проверить, что мой uImage хорош?

Что происходит, в том, что файл находится в формате Windows, где Newlines представлены двум символом CR, LF. Вы используете Unix Tools, которые ожидают, что нью-новинки представляют собой пункт Unix, с простом символом LF. Оболочка лечит CR (возврат каретки) как обычный характер, поэтому он становится частью значения адреса . Когда вы распечатаете результат на терминале, терминал интерпретает персонажа CR как «вернуться к началу текущей строки», поэтому в том, что .html [114933] .html .html . линии.

Вы можете Преобразовать файл в использование нью-модулей Unix .

Если вы хотите, чтобы ваш код был надежным для ввода файлов с кодировкой Windows Newline, вы можете сообщить оболочку для лечения CR как символ пробелов, добавив его в переменную IFS .

while IFS="$IFS$(printf '\r')" read address; do
  echo "${address}.html"
done 

Другое решение было бы раздевать символ CR с конца значения в случае, если он там, используя расширение параметра . Обратите внимание, что Backslash-ueLine для продолжения строки не будет работать, если файл фактически содержит backslash-cr-newline, поэтому вы должны выключить это, чтобы избежать путаницы.

CR=$(printf '\r')
while read -r address; do
  address=${address%$CR}
  echo "${address}.html"
done 

В KSH93, Bash и ZSH вы можете использовать $ '\ R' вместо $ (printf '\ R') .

0
01.04.2014, 16:10
1 ответ

u можете использовать команду "file" в Linux для проверки типа файла. "Файл" распознает по заголовку множество различных типов файлов и, кроме того, может рассказать много подробностей (адрес загрузки, точки входа uImage все будут вам показаны). и из этой информации вы можете сами решить, правильно ли сгенерирован ваш файл (esp адрес загрузки, как правило, является проблемой).

0
28.01.2020, 05:00

Теги

Похожие вопросы