我在詹金斯有一个有趣的行为。
Jenkins 的 shell 不使用我的系统语言环境。
Jenkinsjenkins在我的系统上以用户身份运行。
jenkins通过 SSH登录:locale 显示:
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="en_US.UTF-8"
等等...
env显示LANG和LANGUAGE变量:
LANG=en_US.UTF-8
LANGUAGE=en_US:en
id 显示用户ID:
uid=1008(詹金斯) gid=...
locale 显示:
LANG=
LANGUAGE=
LC_CTYPE="POSIX"
等等...
env并没有表现出LANG与LANGUAGE变数
id 显示用户 ID(如预期):
uid=1008(詹金斯) gid=...
/etc/profile 包含:
export LANG=en_US.UTF-8
export LANGUAGE=en_US:en
/etc/default/locale 包含:
export LANG=en_US.UTF-8
export LANGUAGE=en_US:en
启动脚本/etc/init.d/jenkins应该导出系统的语言环境:
# 加载环境
if [ -r /etc/default/locale ]; 然后
。/etc/default/locale
export LANG LANGUAGE …