在 echo 中启用单个转义序列

Enable a single escape sequence in echo

在我的 bash 脚本中,我需要回显一个选项卡(这是循环发生的)

echo -e "$first\t$last"

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

有没有办法只启用制表符转义序列?我宁愿不显着降低性能,因为即使现在我的脚本也很慢。该循环有很多次迭代(至少 30000 次)

改用printf

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

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

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

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