2013-09-21 160 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 
相關問題