bash 循环中连接字符串导致生成空字符串

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

但是我只得到Result:一个空字符串。当我在循环内打印它时,它似乎工作正常。这个脚本有什么问题?我该如何修复它?

答案1

使用管道本质上会创建一个具有新范围的新脚本。您可以像这样避免使用管道:

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

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

echo Result: $result

相关内容