# 脚本对多语言支持 有些命令支持多种语言,如果脚本没有做兼容,很可以导致结果错误,例如: ``` readelf -h hello.o | grep Type ``` 在本地语言区是 en_US.UTF-8 时有结果返回,但是,语言区设置为 zh_CN.UTF-8 没有任何结果。 对比一下,两种语言时,readelf 的输出。 ```bash [yz@localhost c]$ echo $LANG en_US.UTF-8 [yz@localhost c]$ LANG='en_US.UTF-8' ; readelf -h hello.o ELF Header: Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 Class: ELF64 Data: 2's complement, little endian Version: 1 (current) OS/ABI: UNIX - System V ABI Version: 0 Type: REL (Relocatable file) [yz@localhost c]$ echo $LANG zh_CN.UTF-8 [yz@localhost c]$ LANG='zh_CN.UTF-8' ; readelf -h hello.o ELF 头: Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 类别: ELF64 数据: 2 补码,小端序 (little endian) Version: 1 (current) OS/ABI: UNIX - System V ABI 版本: 0 类型: REL (可重定位文件) ``` 因此,如果脚本不兼容多种语言,则最好强制设置 LANG 环境变量。 # 配置 ## 查看系统当前使用的语言 ``` echo $LANG ``` ## 查看系统有没有安装中文语言包 ``` local ``` ## 安装中文语言包 ``` yum groupinstall chinese-support ``` ## 临时修改语言为中文 ``` LANG="zh_CN.UTF-8" ``` ## 修改系统默认语言 ``` vi /etc/sysconfig/i18n 填写 LANG="zh_CN.UTF-8" ``` # 参考 * [linux(centos)设置显示内容中文(终端使用)](https://www.jianshu.com/p/b5d109049ab5)