[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: export LC_ALL=C

From: Tobias Geerinckx-Rice
Subject: Re: export LC_ALL=C
Date: Mon, 24 Oct 2022 14:40:20 +0200

Hi Gottfried,

I hope this strikes the right balance between explaining ‘environment variables’ from scratch and answering your immediate question.

Gottfried 写道:
1. Will this now overwrite my variables for ever, or only for some time?

Environment variables are not saved. They can be *set* by configuration files, such at /etc/profile, but these files are not updated when you type ‘export GUIX=awesome’ on the command line.

Setting LC_ALL like this affects your current shell, and it will be inherited by child processes (hence why the ‘guix’ child will speak English after setting LC_ALL=C in the parent shell), but they exist purely in RAM for the lifetime of each process.

The also do not propagate to ancestor or sibling processes: setting LC_ALL in one terminal window has no effect on any other windows. Nor will setting LC_ALL in a shell affect new processes you launch elsewhere, such as from your desktop menu. Only child processes launched in the same shell/window will inherit it.

As soon as you close that terminal, type ‘exit’ in the (guix) shell, or trip over your power cable, the setting is gone.

2.  How can I set it back to my original state?

Environment variables have no built-in notion of history, or defaults. They are just variables, and setting them to something new overwrites the old value (if any).


~$ echo $LC_ALL         # yours will be de_DE, I presume
~$ LC_OLD=$LC_ALL       # save the old value
~$ export LC_ALL=C      # in with the new
~$ echo $LC_ALL         # do the thing
~$ LC_ALL=$LC_OLD       # restore the old value

But really, in practice, I'd just close the window/shell once done… they are so cheap.

Kind regards,


Attachment: signature.asc
Description: PGP signature

reply via email to

[Prev in Thread] Current Thread [Next in Thread]