Hello, I was experimenting with locale variables in bash and noticed something that appears odd. This is with bash 5.1.16 and glibc 2.35.
$ locale -a | grep -E '^en_(US|GB)' en_GB.utf8 en_US en_US.iso88591 en_US.utf8 $ locale LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= $ ( LC_ALL=en_US.ISO-8859-1 ) bash: warning: setlocale: LC_ALL: cannot change locale (en_US.ISO-8859-1) $ ( LC_ALL=en_GB.UTF-8 ) $ : setting LC_ALL to any of the UTF-8 locales does not raise a warning Taking Perl as a counter-example, there is no problem issuing the equivalent setlocale call. $ perl -MPOSIX=locale_h -E 'if (setlocale(LC_ALL, "en_US.ISO-8859-1")) { say "Successfully changed LC_ALL to ", setlocale(LC_ALL) }' Successfully changed LC_ALL to en_US.ISO-8859-1 Is there a particular reason that bash appears to reject the attempt to assign "en_US.ISO-8859-1" to LC_CTYPE? -- Kerin Millar