我正在尝试创建一个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突然不同?