[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).
So:
~$ echo $LC_ALL # yours will be de_DE, I presume
en_IE.utf8
~$ LC_OLD=$LC_ALL # save the old value
~$ export LC_ALL=C # in with the new
~$ echo $LC_ALL # do the thing
C
~$ 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,
T G-R
signature.asc
Description: PGP signature