我正在使用bash脚本,最初有这样一行:
combined=`echo "$name"$'\t'"$phone"`
然后将它打印出来:
echo $combined >> file.txt
但是,我发现这个标签在此过程中丢失了。这是一个缩短的例子:
为什么会发生这种情况,我该如何解决?
答案 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