检查bash中是否启用了特定区域设置

5
我的脚本需要以特定的语言环境运行,才能正常工作。因此,我想让它检查这种语言环境是否可用。目前我使用了这个技巧,但我认为还有更好的方法来做到这一点。
grep ^ja_JP /etc/locale.gen &>/dev/null || echo >&2 "enable any of the japanese locales first"
2个回答

7
man locale命令可以告诉您可用的语言环境列表,locale -a命令则可以列出所有可用的语言环境。
locale -a | grep -q ^ja_JP || echo "enable any of the japanese locales first"

2
不幸的是,locale -a 不足以验证配置选项,因为它会拒绝有效的情况。例如,我可以使用 "en_CA.utf8" 和 "en_CA.UTF-8" 来达到相同的效果,但后者会失败,因为 locale -a 列出了前者。这在编写将部署在不同环境中的代码时特别不可取,然而至今我仍未找到其他验证配置选择的方法。 - HonoredMule

4

locale -a应该列出所有可用的语言环境:

if locale -a | grep ^ja_JP ; then
    # locale installed...
else
    # locale not installed...
fi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接