为什么$ LINES在bash脚本中发生变化?

时间:2019-04-10 09:14:22

标签: bash

我正在尝试创建一个bash脚本来解析一些多行字符串,并且还要保存一个日志文件以了解其工作情况。

我使用tee -a将当前步骤输出到stdout和日志文件。 当我这样做时,多行字符串变量会完全更改,我一生都无法弄清楚为什么会发生这种情况。

任何人都可以阐明一下吗?

例如使用此脚本:

mlr::resample

这给了我以下输出:

#!/bin/bash
#


LINES=""
LINES="$(echo -e "$LINES\\n some text 1")"
LINES="$(echo -e "$LINES\\n some text 2")"
LINES="$(echo -e "$LINES\\n some text 3")"
LINES="$(echo -e "$LINES\\n some text 4")"
LINES="$(echo -e "$LINES\\n some text 5")"

echo "#1"
echo "'"
echo "$LINES"
echo "'"

echo -e "\nnow doing thing A" | tee -a "log.txt"

echo "#2"
echo "'"
echo "$LINES"
echo "'"


echo ""


LINES=""
LINES="$(echo -e "$LINES\\n some text 1")"
LINES="$(echo -e "$LINES\\n some text 2")"
LINES="$(echo -e "$LINES\\n some text 3")"
LINES="$(echo -e "$LINES\\n some text 4")"
LINES="$(echo -e "$LINES\\n some text 5")"

echo "#3"
echo "'"
echo "$LINES"
echo "'"

echo -e "\nnow doing thing B"
echo -e "\nnow doing thing B" >> "log.txt"

echo "#4"
echo "'"
echo "$LINES"
echo "'"

为什么回声#2突然不同?

0 个答案:

没有答案