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