eval "`locale`" is supposed to be safe. From <http://www.opengroup.org/onlinepubs/000095399/utilities/locale.html>: "The <value> and <implied value> shown above shall be properly quoted for possible later reentry to the shell." glibc's locale command does not do this, and as a result, if a script does eval "`locale`", it misbehaves badly when someone figures out to set LANG to ' rm -rf /'. $ LANG=' rm -rf /' locale locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_MESSAGES to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory LANG= rm -rf / LC_CTYPE=" rm -rf /" LC_NUMERIC=" rm -rf /" LC_TIME=" rm -rf /" LC_COLLATE=" rm -rf /" LC_MONETARY=" rm -rf /" LC_MESSAGES=" rm -rf /" LC_PAPER=" rm -rf /" LC_NAME=" rm -rf /" LC_ADDRESS=" rm -rf /" LC_TELEPHONE=" rm -rf /" LC_MEASUREMENT=" rm -rf /" LC_IDENTIFICATION=" rm -rf /" LC_ALL= $ echo $? 0
Fixed in git.