【发布时间】:2023-03-16 09:49:01
【问题描述】:
在我的 bash 脚本中,我需要回显一个选项卡(这发生在循环中)
echo -e "$first\t$last"
不幸的是,$last 可能包含一些转义序列,如 \n,应该保留。
有没有办法只启用制表符转义序列?我宁愿不显着降低性能,因为即使现在我的脚本也很慢。循环有很多次迭代(至少30000)
【问题讨论】:
在我的 bash 脚本中,我需要回显一个选项卡(这发生在循环中)
echo -e "$first\t$last"
不幸的是,$last 可能包含一些转义序列,如 \n,应该保留。
有没有办法只启用制表符转义序列?我宁愿不显着降低性能,因为即使现在我的脚本也很慢。循环有很多次迭代(至少30000)
【问题讨论】:
改用printf:
printf '%s\t%s\n' "$first" "$last"
格式说明符接受两个字符串%s,由制表符\t分隔,并以换行符\n结尾。 $first 和 $last 中的任何潜在转义序列都不会被解释。
【讨论】:
printf 和 echo 都是内置实现的,所以我不会担心性能差异。
在 bash 中,您可以使用 $' 引号:
echo "$first"$'\t'"$last"
【讨论】: