此 BASH 脚本按预期工作。我有一个包含数据行的变量 ($foo),我告诉 bash 在新行处分隔,然后循环遍历该变量。
#!/bin/bash
foo="
Original Line1
Original Line2
Original Line3
"
IFS=$'\n'
for line in $foo
do
echo $line
done
正如预期的那样,数据在它自己的线上。
Original Line1
Original Line2
Original Line3
我将此行添加到脚本中,以将 $foo 变量中的文本“Line2”替换为“EXAMPLE”。
foo=$( echo $foo | sed "s|Line2|EXAMPLE|" )
当我运行脚本时,数据不再分开在它自己的行上,而是打印在一行上。我不确定如何替换变量中的值并保留新行。
Original Line1 Original EXAMPLE Original Line3