相关疑难解决方法(0)

为什么 [AZ] 在 bash 中匹配小写字母?

在我知道的所有 shell 中,rm [A-Z]*删除所有以大写字母开头的文件,但使用 bash 删除所有以字母开头的文件。

由于此问题存在于具有 bash-3 和 bash-4 的 Linux 和 Solaris 上,因此它不可能是由 libc 中的错误模式匹配器或错误配置的区域设置定义引起的错误。

这种奇怪且冒险的行为是有意为之,还是只是一个多年未修复的错误?

shell bash wildcards locale

45
推荐指数
5
解决办法
3万
查看次数

我应该将我的语言环境设置为什么以及这样做的含义是什么?

这个问题是通过询问Chromium 浏览器不允许为“打印到文件”设置默认纸张大小的问题 以及在聊天中与@Gilles 进行对话而激发的。正如@don_crissti 所指出的,并经我证实,更改语言环境(至少LC_PAPER)会影响选择的纸张尺寸。

我从来没有想过要选择什么,而且总是选择,en_US.UTF-8因为这似乎是一个合理的默认选择。

但是,根据聊天中的@Gilles(请参阅从http://chat.stackexchange.com/transcript/message/17017095#17017095开始的对话)。摘录:

吉尔斯:LC_PAPER 默认为 $LANG

吉尔斯:你必须有 LANG=en_US.UTF-8。这是一个坏主意:它设置了 LC_COLLATE 而这几乎总是一件坏事

Gilles:LC_COLLATE 没有描述正确的排序规则,它太严格了(它逐个字符)删除 LANG 而是设置 LC_CTYPE 和 LC_PAPER

Gilles:加上 LC_MESSAGES 如果你想要非英语的消息

显然,这里有一些我不知道的问题,我相信还有很多其他问题。那么,在设置语言环境时应该考虑哪些问题,又应该如何设置呢?我一直只是dpkg-reconfigure locales在 Debian 中运行,并没有三思而后行。

具体问题:我应该将语言环境设置为 en_IN.UTF-8 吗?这样做有什么缺点吗?

另请参阅:LC_COLLATE 是否(应该)影响字符范围?

locale

23
推荐指数
1
解决办法
1万
查看次数

设置 LC_* 但不设置 LC_ALL

我想要一个德语(奥地利)语言环境(A4 纸张大小,24 小时制,yyyy-mm-dd),但是一个英语用户界面(我不喜欢糟糕的翻译)。我认为实现这一点的正确方法是LC_在我的.bashrc(如果我错了,请纠正我)中如下设置变量:

LC_MESSAGES=en_US.UTF-8
LC_$everythingelse=de_AT.UTF-8
Run Code Online (Sandbox Code Playgroud)

有没有更优雅的方法来设置 LC_$everythingelse 而不是设置每个值?设置 LC_ALL 不是一个选项,因为它优先于 LC_MESSAGES:

$ export LC_ALL=de_AT.UTF_8
$ export LC_MESSAGES=en_US.UTF_8
$ echo $LC_MESSAGES
en_US.UTF_8
$ locale | grep LC_MESSAGES
LC_MESSAGES="de_AT.UTF_8"
Run Code Online (Sandbox Code Playgroud)

PS:这是一台共享机器,我不是 sudoer,所以更改系统范围的设置不是一种选择。

environment-variables locale

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

标签 统计

locale ×3

bash ×1

environment-variables ×1

shell ×1

wildcards ×1