Problema com um script simples

2

Esta é a minha estreia neste site. Eu tenho um problema com um script muito simples no AIX, mas não consigo encontrar o erro. Eu quero copiar arquivos entre dois diretórios, mas verificando primeiro a existência desses diretórios. O que estou fazendo é isto:

PATH=/home/fede/
PATH2=/home/prueba/
if [ -d $PATH ];
then
find $PATH -type f -exec cp {} $PATH2 \;
        echo "se copiaron los archivos correctamente"
else
        echo "no existe"
fi

Mas eu recebo esta mensagem: ./scriptTB[5]: find: not found. se copiaron los archivos correctamente . A última linha diz "Os arquivos foram copiados corretamente" em espanhol. O nome do script é scriptTB .

Eu tenho que colocar algo antes de find ? Parece que o problema está em find .

    
por fedeemp 12.01.2017 / 18:54

2 respostas

4

$PATH é uma variável de ambiente padrão que informa ao seu sistema onde encontrar os binários do programa (como o programa find que você está tentando usar), então você deve usar um nome diferente para essa variável. Eu estou apostando que você está sobrescrevendo $PATH do seu sistema, e agora seu sistema não pode encontrar o programa find . Experimente e veja se funciona.

    
por 12.01.2017 / 19:20
0

PATH é a variável de ambiente usada pelo shell para localizar executáveis. Se você desativá-lo ou alterá-lo, talvez o shell não encontre comandos como find ou cp .

Seria melhor se você usasse nomes de variáveis minúsculas em scripts. É menos provável que colidam com variáveis de ambiente importantes.

Nesse caso, você pode usar source_dir e target_dir , por exemplo, que têm o benefício adicional de fornecer ao leitor um pouco de documentação.

    
por 12.01.2017 / 19:17

Tags