Я имею странное поведение при попытке перебрать обычный текстовый файл:Как правильно печатать читать строки в Баше
#!/bin/bash
sed -n "5,5p" test.tmp
while read linea in
do
echo $linea
done < test.tmp
Дело в том, что с первым СЭДОМ я получаю то, что я ожидал, но от цикл, пока я не:
./test.sh
(5) Sorgo DICOTILEDONEAS 1,5-2 l/ha 15
(1)
(2)
(3)
(4)
(5)
(6)
Я прилагаю оба файла для того, чтобы помочь пониманию того, что происходит здесь:
- Сценарий: https://www.dropbox.com/s/w3sx8zbglvyti7w/test.sh?dl=0
- Входные данные: https://www.dropbox.com/s/p5jq8dl162jpofv/test.tmp?dl=0
Заранее спасибо
МФС линии разделения на пробельных. Переопределите это, так что только ввод строки новой строки – albfan
'echo $ linea', во-первых, добавляет большое количество ошибок по сравнению с' echo '$ linea "', или - намного лучше - 'printf'% s \ n '' $ linea «'. –
Помимо этого, см. BashFAQ # 1 для всестороннего обсуждения правильного ввода данных: http://mywiki.wooledge.org/BashFAQ/001 –