在echo中启用单个转义序列

mar*_*trz 1 bash escaping echo

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

echo -e "$first\t$last"
Run Code Online (Sandbox Code Playgroud)

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

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

Tom*_*ech 5

printf改为使用:

printf '%s\t%s\n' "$first" "$last"
Run Code Online (Sandbox Code Playgroud)

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