+ Responder ao Tópico



  1. #1

    Padrão Script para verificar a existência de arquivo

    Bom dia pessoal.
    Estou elaborando um script que deve verificar se existe arquivo em determinada pasta do servidor.
    Eu sei que se eu utilizar:

    if [ -f <arquivo> ]

    ele realizaria essa função, porém o problema é que eu precisaria realizar essa consulta sem precisar passar o nome do arquivo pois o nome desse arquivo irá variar. Tentei substituir o <arquivo> por asterisco (*) porém não obtive sucesso.
    Alguém poderia me ajudar?

  2. #2
    Under-linux.Org Team Avatar de MarcusMaciel
    Ingresso
    Dec 2000
    Localização
    Boston
    Posts
    1.961
    Posts de Blog
    44

    Padrão

    voce nao pode passar o nome do arquivo na execucao e pegar dentro do script via parametro ?

  3. #3

    Padrão

    Caro scorpion,

    O problema é que eu nunca sei o nome dos arquivos pois eu recebo de um dos nossos cliente. Além disso, não é todo dia que o cliente envia esses arquivos.

  4. #4
    Under-linux.Org Team Avatar de MarcusMaciel
    Ingresso
    Dec 2000
    Localização
    Boston
    Posts
    1.961
    Posts de Blog
    44

    Padrão

    cara entao tu tem que fazer diferente
    Código :
    #!/bin/bash
     
    count=`ls /diretorio | wc -l`
     
    if [ $count -gt 0 ]
    then
          executaalgumacoisa
    fi


    claro que no lugar de executaalgumacoisa vc ve oq vc quer fazer.. mandar email etc etc

    basicamente o script acima vai dar um ls no diretorio contar quantos arquivos tem nele e se for maior que 0 a quantidade de arquivos vc escolhe oq faz

  5. #5

    Padrão

    Você pode fazer o script solicitar o nome do arquivo, algo tipo assim:


    #!/bin/sh
    echo "Informe o nome do arquivo: " ; read arq
    if [ -f $arq ]
    then
    echo "Existe"
    else
    print "Não existe"
    fi



    Ou você pode passar como parâmetro do script:


    #!/bin/sh
    # Testa se passou um e apenas um arquivo
    if [ $# -ne 0 ]
    then
    echo "Favor informar um e APENA um nome do arquivo..."
    echo ""
    exit
    fi

    # Testa se arquivo existe
    if [ -f $1 ]
    then
    echo "Arquivio existe"
    exit
    else
    echo "Arquivo inexistente"
    fi
    exit



    Ai você tem que chamar o script assim:
    ./nome_do_script nome_do_arquivo

    Dá uma testada ai, porque no momento to num windows e fiz de cabeça... podem haver erros!!!

  6. #6

    Padrão

    scorpion,

    Valew pela ajuda!!!! Acredito que da forma que você aconselhou resolverá o meu problema.