Эхо-переменные и добавление текста внутри цикла - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь читать из файла построчно и добавлять текст в каждую строку, прежде чем их выводить.

Но вывод всегда выглядит неправильно

ссылка.txt содержит (с новой строкой в ​​конце):

http://example.com/ddk.zip
http://example.com/453.zip
http://example.com/hth.zip
test=1; while read link; do echo "so $link wow $test"; done < link.txt
 wow 1p://example.com/ddk.zip
 wow 1p://example.com/453.zip
 wow 1p://example.com/hth.zip

Странно, но прекрасно работает вне цикла:

test=1; link=2; echo "so $link wow $test"
so 2 wow 1

Мне нужно в однострочном формате.

1 Ответ

0 голосов
/ 20 мая 2019

Это происходит, когда ваш файл имеет окончания строки DOS (\r\n).Исправьте это, используя следующую команду, и ваш скрипт будет работать:

dos2unix link.txt

Или добавьте \r к IFS, если вы не хотите изменять link.txt:

test=1
while IFS+=$'\r' read -r link; do
  echo "so $link wow $test"
done < link.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...