Portál AbcLinuxu, 13. května 2024 04:56
[hajma@localhost ~]$ echo $LANG cs_CZ [hajma@localhost ~]$ LANG=abc echo $LANG cs_CZ [hajma@localhost ~]$
[marian@alf ~]$ LANG=abc; echo $LANG abc
echo $LANGa das
LANG=abc ./lang.shtak to fungovat bude ROman
echo
, ale shell sám. Takže (odhlédněme teď od toho, že v bashi je echo
builtin) se stane přibližně toto:
$LANG
LANG
, tedy 'cs_CZ
'echo
s parametrem cs_CZ
a do svého environmentu dostane proměnnou LANG
s hodnotou abc
cs_CZ
', ale jako hodnotu proměnné LANG
dostane 'abc
' (což se ale na jeho chování neprojeví). Schválně si zkuste spustit
LANG=ru_RU.UTF-8 date "+$LANG: %B"Před dvojtečkou bude sice '
cs_CZ
', ale měsíc se vypíše rusky.
makewhatis
nebo přímo do toho skriptu, podle čeho ten adresář určuje. Není to prostě podle jazykových mutací stránek, které máte nainstalované v systému?
cs_CZ
se zaindexují do adresáře .../cs_CZ/...
, stránky pro de_DE
do adresáře .../de_DE/...
atd. A to bez ohledu na to, jak máte nastavené locale při spuštění příkazu makewhatis
.
[hajma@localhost ~]$ cat /etc/cron.weekly/makewhatis-cs.cron #!/bin/bash LANG=cs /usr/sbin/makewhatis /usr/share/man/cs exit 0 [hajma@localhost ~]$zjistíte, že makewhatis se opravdu má chovat podle proměnné prostředí LANG. Problém to způsobuje třeba při pokusu rebuildnout rpm na stroji s jiným locale. Ta řádka v makewhatis, která to způsobuje, je "mandriva-specific", v originálním balíčku man se nevyskytuje.
makewhatis
nemám vůbec (whatis
ano). :-)
[~]> LANG=C date "+$LANG: %B" (Po 24.07. 23:02) cs_CZ.UTF-8: červenec [~]> LC_ALL=C date "+$LANG: %B" (Po 24.07. 23:02) cs_CZ.UTF-8: JulyR.
LC_TIME
a LC_ALL
?
[~]> echo $LC_TIME (Po 24.07. 23:07) [~]> echo $LC_ALL (Po 24.07. 23:08) cs_CZ.UTF-8R.
Tiskni Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.