3
我的脚本需要运行具有特定语言环境的程序才能正常工作,因此我希望它能检查该语言环境是否可用。我现在已经使用过这种黑客技术,但我认为还有更好的方法来做到这一点。检查是否在bash中启用了特定语言环境
grep ^ja_JP /etc/locale.gen &>/dev/null || echo >&2 "enable any of the japanese locales first"
我的脚本需要运行具有特定语言环境的程序才能正常工作,因此我希望它能检查该语言环境是否可用。我现在已经使用过这种黑客技术,但我认为还有更好的方法来做到这一点。检查是否在bash中启用了特定语言环境
grep ^ja_JP /etc/locale.gen &>/dev/null || echo >&2 "enable any of the japanese locales first"
man locale
会告诉你,locale -a
会列出所有可用的语言环境。
你可以这样说:
locale -a | grep -q ^ja_JP || echo "enable any of the japanese locales first"
locale -a
应列出所有可用的语言环境:
if locale -a | grep ^ja_JP ; then
# locale installed...
else
# locale not installed...
fi
不幸的是,现场-a不足以验证配置选项,因为它会拒绝有效的情况下。例如,我可以使用“en_CA.utf8”和“en_CA.UTF-8”来达到同样的效果,但后者失败,因为locale -a列出了前者。在编写将要在不同环境中部署的代码时,这是特别不希望的,但是我仍然发现根本没有其他方法来验证配置选择。 – HonoredMule