Você parece estar usando a variável PATH
em seu script. Esta é a variável que o shell usa para procurar executáveis. Isso significa que, se você alterá-lo para outra coisa que não seja uma lista de caminhos :
-delimited ou para um caminho que não contenha os executáveis que o script usa, o shell poderá não encontrar mais coisas como mv
ou outros utilitários padrão.
É preferível usar letras minúsculas em variáveis de script de shell por esse motivo (é uma questão de gosto 1 ), ou pelo menos estar ciente de que há variáveis que o shell usa para várias coisas , e que você deve evitar modificá-los, a menos, claro, que você queira alterar o comportamento do shell.
As variáveis que o Bash usa estão listadas sob o cabeçalho "Variáveis Shell" no manual do Bash.
Por acaso, o cd
na linha acima faz funcionar. É porque é um utilitário especial embutido no próprio shell. Portanto, o shell não precisa examinar $PATH
para descobrir onde está.
Além disso, você diz que $PATH
é seu diretório de trabalho. O shell já armazena o diretório de trabalho atual em $PWD
.
Como uma nota secundária, crie o hábito de duplicar suas variáveis. Veja " Implicações de segurança do esquecimento para citar uma variável em shells bash / POSIX ".
1 Bem, principalmente, mas as reservas padrão POSIX o namespace de variáveis maiúsculas para variáveis de ambiente (isto é, variáveis de shell exportadas) usadas pelo shell e pela coleção de utilitários padrão. AFAIK, ele não desativa o uso de caracteres maiúsculos em variáveis de shell não exportadas , mas todo o propósito de definir namespaces é evitar conflitos. Desde que, para um script, variáveis de ambiente e variáveis de shell têm a mesma semântica, é melhor simplesmente evitar variáveis maiúsculas.