Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 在echo中启用单个转义序列_Bash_Escaping_Echo - Fatal编程技术网

Bash 在echo中启用单个转义序列

Bash 在echo中启用单个转义序列,bash,escaping,echo,Bash,Escaping,Echo,在我的bash脚本中,我需要回显一个选项卡(这在循环中发生) 不幸的是,$last可能包含一些转义序列,如\n,应该保留这些转义序列 有没有办法只启用制表符转义序列?我宁愿不显著降低性能,因为我的脚本即使现在也很慢。循环有很多次迭代(至少30000次)请改用printf: printf '%s\t%s\n' "$first" "$last" 格式说明符接受两个字符串%s,由制表符\t分隔,并以换行符\n结尾。不会解释$first和$last中的任何潜在转义序列 改用printf: printf

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

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


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

请改用
printf

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

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

改用
printf

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

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

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

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

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

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

printf不是比echo慢吗/编辑:它不是:@marmistrz在bash中(我怀疑还有其他shell),
printf
echo
都是作为内置实现的,所以我不会担心性能上的差异。printf不是比echo慢吗/编辑:它不是:@marmistrz在bash中(我怀疑还有其他shell),
printf
echo
都是内置实现的,所以我不会担心性能上的差异。