在实现脚本时,我面临以下问题:将命令的多行结果放入变量时,多行字符串的最后(空)行似乎消失了。
这一行是“空的”,但是,我不能丢失它包含的回车(因为我将保存在数据库中并包含“\n”字符的代码块连接成一个人类可读的字符串......如果我丢失了一些“\n”,我将失去我的代码缩进的一部分)
这是说明我的问题的代码:
test="A
B
";
test2=`echo "$test"`;
echo "||$test2||";
这返回
||A
B||
在我期待的时候:
||A
B
||
--> 最后(空)行已经消失了……因此在我的可读代码中缺少回车符。
仅当我的多行字符串的最后一行为空时才会出现此问题...
你知道吗
- 为什么最后一行消失了?
- 如何确保我的最后一个空行保存在我的多行字符串变量中?
请注意,我当然不能使用最简单的解决方案
test2="$test";
因为完整的过程相当:
test="^A\n\nB\n^"
test2="`echo "$test" | sed -e 's/\^//g'`";
但我尽量简化这个问题。