我用Python编写了一个很长的脚本,它在多个地方用python子进程调用git并匹配git返回的内容,例如:
nothing to commit, working tree clean
fast-forwardable
up to date
一个同事去使用该脚本,它的行为不像预期的那样,因为他们的git正在使用带有以下消息的本地德语语言环境:
nichts zu committen, Arbeitsverzeichnis unverändert
我当时没有想到。可以看到here和here的一些有关永久更改语言的想法。
我当然不想在运行脚本的PC上更改设置,是否可以告诉git仅在单个命令中返回en_US
?
实际上,当我编写脚本时,我将系统设置为en_GB
,想知道我的git是否使用en_GB
或en_US
,是否存在任何区别。是否可以要求git告诉您它使用的是哪种语言?但是,这是次要的问题,如果可以告诉git临时使用en_US
就足够了。
答案 0 :(得分:3)
实际上,您可以在Shell中的任何命令前加上任何变量设置,该设置仅适用于此命令,无论是git
还是其他任何命令。只需键入它,然后用空格将其与您的命令分开:
$ LANG=fr_FR sh -c 'echo $LANG'
fr_FR
$ echo $LANG
en_us.UTF-8
但是,您可能要使用C
,以确保对运行的命令使用默认语言:
$ LANG=C git
但是请记住,如果未使用所选语言,则可能无法使用所选语言。但是,通常应使用常规英语,因为通常它是用软件字符串编写的语言。
答案 1 :(得分:2)
尝试一行:
LANG=en_US git ...your command...
或为此bash会话:
export LANG=en_US
答案 2 :(得分:2)
在git
命令前加上所需的语言参考,以仅对该命令应用更改。
例如
默认(en_US.UTF-8
)
$ git status
fatal: Not a git repository (or any of the parent directories): .git
德语,
$ LANG=de_DE.UTF8 git status
fatal: Kein Git-Repository (oder irgendein Elternverzeichnis): .git
LANG
格式:
<LANGUAGE>_<TERRITORY>.<CODESET>[@<MODIFIERS>]
答案 3 :(得分:2)
在脚本开头的某个位置设置LANG
:
#!/bin/sh
LANG=en_US
export LANG
该设置适用于当前shell(即脚本)以及从其中衍生出的子进程,包括git
。