É uma boa idéia usar variáveis minúsculas em seus scripts de shell, já que as variáveis em maiúsculas são geralmente reservadas para internos do shell. (As variáveis de ambiente são uma exceção a isso, mas devem ser tratadas da mesma maneira, como coisas com significados especiais que você não deve alterar arbitrariamente sem entender o que está fazendo.) Nesse caso, bash
define $UID
para o Unix uid está sendo executado, e não permitirá que ele seja alterado ou que a variável seja usada para qualquer outra coisa. Shells diferentes de bash
( sh
podem ser dash
ou algum outro shell em algumas plataformas) não podem usar $UID
dessa maneira, e se bash
foi criado para funcionar no modo de compatibilidade shell Bourne quando chamado como sh
(que é o padrão, mas muitas distribuições do Linux desabilitam isso) não tratará $UID
como especial.