bash объединение строки в цикле приводит к пустой строке

У меня есть следующий файл

Hello
World
my
name
is
FalcoGer

И я хочу объединить строки каждой строки.

Для этого я написал следующий сценарий.

#! /usr/bin/bash
myFile=/home/FalcoGer/testfile.txt

result=""
cat $myFile | while read line
do
  result+="$line "
done

echo Result: $result

Однако я получаю только Результат: с пустой строкой. Когда я печатаю его из цикла, кажется, что он работает нормально. Что не так с этим скриптом и как это исправить?

0
задан 31 August 2021 в 19:56

1 ответ

Использование канала по существу создает новый сценарий с новой областью действия. Вы можете избежать использования канала следующим образом:

#! /usr/bin/bash
myFile=/home/FalcoGer/testfile.txt

result=""
while read -r line
do
  result+="$line "
done < $myFile

echo Result: $result
3
ответ дан 4 September 2021 в 09:24

Другие вопросы по тегам:

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