字符串中的选项卡保存在变量中时会消失

时间:2014-11-22 22:57:20

标签: linux bash

我正在使用bash脚本,最初有这样一行:

combined=`echo "$name"$'\t'"$phone"`

然后将它打印出来:

echo $combined >> file.txt

但是,我发现这个标签在此过程中丢失了。这是一个缩短的例子:

enter image description here

为什么会发生这种情况,我该如何解决?

2 个答案:

答案 0 :(得分:4)

这种情况正在发生,因为shell在将参数传递给echo时执行了单词拆分。这可以通过引用变量来防止。

echo "$combined" >> file.txt

答案 1 :(得分:2)

为什么要通过echo设置变量?

我会直接设置它:

combined="blubb\tblubb"

然后打印(不要忘记 -e

echo -e $combined

所以你的所有代码片段都是这样的:

#!/bin/bash

name="blubb"
phone="1234"

combined="${name}\t${phone}"
echo -e $combined >> file.txt