如何让 printf 打印保存在变量中的 unicode 字符?

如何让 printf 打印保存在变量中的 unicode 字符?

我有此代码使用unicode字符打印水平线\u2501

/bin/tcsh 的 #!/bin/tcsh
设置 horz_line = "'"
foreach x (`序列 1 1 80`)
   设置 horz_line = "${horz_line}\\u2501"
结尾
设置 horz_line = "${horz_line}\\n'"
printf $horz_line

但它并没有给出我所期望的结果。我期望输出看起来像下面生成的输出:

/bin/tcsh 的 #!/bin/tcsh
foreach x (`序列 1 1 79`)
   printf'\u2501' 复制代码
结尾
printf'\u2501\n' 复制代码

我之所以想尝试第一个块中的代码,是因为第二个块中的代码可以运行但速度很慢。当我运行第二个块代码时,我可以看到整行一次绘制几个字符。

我的想法是,这可能是因为printf被调用了 80 次。所以我尝试了第一种块方法,即生成一个字符串\u2501\u2501.. (80 times),然后printf只调用一次来打印它。

答案1

下面的代码实现了问题中第一个代码块中我想要的结果。它比第二个代码块快得多。

/bin/tcsh 的 #!/bin/tcsh
设置水平线 = “”
foreach x (`序列 1 1 80`)
    设置 horz_line = ${horz_line}'\\u2550' # 双线
结尾
printf“`echo $horz_line`\n”
取消设置水平线

相关内容