在 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"
在我的 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"