Portál AbcLinuxu, 25. prosince 2025 12:32
[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:
$LANGLANG, tedy 'cs_CZ'echo s parametrem cs_CZ a do svého environmentu dostane proměnnou LANG s hodnotou abccs_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.