2013-09-21 157 views
3

我的脚本需要运行具有特定语言环境的程序才能正常工作,因此我希望它能检查该语言环境是否可用。我现在已经使用过这种黑客技术,但我认为还有更好的方法来做到这一点。检查是否在bash中启用了特定语言环境

grep ^ja_JP /etc/locale.gen &>/dev/null || echo >&2 "enable any of the japanese locales first" 

回答

4

man locale会告诉你,locale -a会列出所有可用的语言环境。

你可以这样说:

locale -a | grep -q ^ja_JP || echo "enable any of the japanese locales first" 
+1

不幸的是,现场-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 
相关问题