相关疑难解决方法(0)

为什么 printf “缩小”变音符号?

如果我执行以下简单脚本:

#!/bin/bash
printf "%-20s %s\n" "Früchte und Gemüse"   "foo"
printf "%-20s %s\n" "Milchprodukte"        "bar"
printf "%-20s %s\n" "12345678901234567890" "baz"
Run Code Online (Sandbox Code Playgroud)

它打印:

Früchte und Gemüse foo
Milchprodukte        bar
12345678901234567890 baz
Run Code Online (Sandbox Code Playgroud)

也就是说,带有变音符号(例如ü)的文本每个变音符号“缩小”一个字符。

当然,我在某处有一些错误的设置,但我无法弄清楚可能是哪一个。

如果文件的编码为 UTF-8,则会发生这种情况。

如果我将其编码更改为 latin-1,则对齐是正确的,但变音符号呈现错误:

Fr?chte und Gem?se   foo
Milchprodukte        bar
12345678901234567890 baz
Run Code Online (Sandbox Code Playgroud)

bash unicode printf

58
推荐指数
3
解决办法
7574
查看次数

如何在 Unix shell 中将特殊字符用作普通字符?

许多问题,例如“如何键入双引号字符 (")?” 正在被问到,我们不想用相同的答案来扰乱我们的社区(输入时\"好像不包含在's 中,"如果包含在's 中。)所以,问题就在这里。

您不能像普通字符那样在终端中输入特殊字符,例如此命令将失败:

echo Updates (11)
Run Code Online (Sandbox Code Playgroud)

那么,如何在终端中输入这些字符,就像它们是普通字符一样?

echo Updates (11)
Run Code Online (Sandbox Code Playgroud)

shell special-characters quoting

14
推荐指数
2
解决办法
8万
查看次数

标签 统计

bash ×1

printf ×1

quoting ×1

shell ×1

special-characters ×1

unicode ×1