在echo中启用单个转义序列

时间:2015-05-27 10:05:03

标签: bash escaping echo

在我的bash脚本中,我需要回显一个标签(这发生在一个循环中)

echo -e "$first\t$last"

不幸的是,$last可能包含一些转义序列,如\n,应保留这些转义序列。

有没有办法只启用标签转义序列?由于我的脚本即使现在很慢,我也不会显着降低性能。循环有许多次迭代(至少30000)

2 个答案:

答案 0 :(得分:5)

改为使用printf

printf '%s\t%s\n' "$first" "$last"

格式说明符接受由标签字符%s分隔并以换行符\t结尾的两个字符串\n$first$last中的任何潜在转义序列都不会被解释。

答案 1 :(得分:3)

在bash中,您可以使用$'引号:

echo "$first"$'\t'"$last"