locale [-a | -m]
locale [-ck] name...
locale 实用程序可将有关当前语言环境或所有公共语言环境的信息写入标准输出。对于本节而言,public locale 是该应用程序可访问的某个实现所提供的。
不使用任何参数调用 locale 时,将汇总由环境变量设置所确定的每个语言环境类别的当前语言环境。
使用操作数调用时,将写入已赋予语言环境类别中的关键字的值,如下所示:
指定关键字名称将选择指定关键字和包含该关键字的类别。
指定类别名称将选择指定类别和该类别中的所有关键字。
支持以下选项:
写入有关所有可用的公共语言环境的信息。可用的语言环境包括 POSIX,表示 POSIX 语言环境。
写入所选语言环境类别的名称。当选定多个类别(例如,通过多个关键字名称或通过某个类别名称)时,–c 选项会提高可读性。使用或不使用 –k 选项均有效。
写入所选关键字的名称和值。程序实现可能会省略某些关键字的值;请参见“操作数”部分。
写入可用字符映射的名称;请参见 localedef(1)。
支持下列操作数:
语言环境类别的名称、语言环境类别中的关键字的名称或保留名称 charmap。所指定的类别或关键字是为输出选择的。如果单个 name 同时代表当前语言环境设置中的语言环境类别名称和关键字名称,则结果是不确定的;否则,类别和关键字名称都可以指定为以任意序列排列的 name 操作数。
在以下示例中,假设语言环境变量的设置如下所示:
LANG=locale_x LC_COLLATE=locale_y
命令 locale 可能会产生以下输出:
LANG=locale_x LC_CTYPE="locale_x" LC_NUMERIC="locale_x" LC_TIME="locale_x" LC_COLLATE=locale_y LC_MONETARY="locale_x" LC_MESSAGES="locale_x" LC_ALL=
以下命令
LC_ALL=POSIX locale -ck decimal_point
将生成:
LC_NUMERIC decimal_point="."
以下命令显示了应用 locale 来确定用户提供的响应是否是肯定性的:
if printf "%s\n" "$response" | /usr/xpg4/bin/grep -Eq\ "$(locale yesexpr)" then affirmative processing goes here else non-affirmative processing goes here fi
有关 LANG、LC_ALL、LC_CTYPE、LC_MESSAGES 和 NLSPATH 的说明,请参见 environ(5)。
LANG、LC_* 和 NLSPATH 环境变量必须指定要写出的当前语言环境。如果未指定 –a 选项,将使用这些环境变量。
将返回以下退出值:
所有请求的信息均已找到并成功输出。
出现错误。
有关下列属性的说明,请参见 attributes(5):
|
localedef(1)、attributes(5)、charmap(5)、environ(5)、locale(5)、locale_alias(5)、standards(5)
如果已指定类别 LC_CTYPE 中的 LC_CTYPE 或关键字,则只会写出范围 0x00-0x7f 中的值。
如果已指定类别 LC_COLLATE 中的 LC_COLLATE 或关键字,则不会写出任何实际值。
显示在 locale -a 输出中的语言环境名称仅限于标准化语言环境名称。有关可接受的和受支持的语言环境别名,请参见 locale_alias(5)。