Precisa de ajuda se a condição de teste

0

Preciso da sua ajuda no script abaixo onde estou testando se o arquivo encontrado em local / log / TestFile * e id existe apenas um arquivo, então ele irá mostrar "Arquivo encontrado com sucesso" else "nota encontrada". minha segunda condição - [$ sfCount == 1]; não está funcionando. por favor me ajude com isso.

sfCount='ls -l /log/TestFile* | awk '{print $9}'| wc -l |sed "s/[[:blank:]]//g" | sed '/^$/d' | sed 's/\n//g''
sFile='ls -l /log/TestFile* | awk '{print $9}''

if [ -e /log/$sFile ] && [ $sfCount == 1 ]; then
    echo "File successfully Found"
    exit 0
else 
    echo "File Not found"
    exit 1
fi
    
por Rav 12.11.2014 / 10:19

2 respostas

0

Você pode obter a contagem de arquivos com mais facilidade, fazendo o seguinte:

ls /log/TestFile* | wc -l

Isso vai aliviar você de todos os outros. Não sei por que você está obtendo uma contagem do número de arquivos e também colocando-os em uma matriz para ver se eles existem. Pelo que parece, você só quer ver se eles existirem. Você só precisa do primeiro comando para isso. Então, o que nos resta é:

if [ $(ls /log/TestFile* 2>/dev/null | wc -l) != 0 ]; then
    echo "File Found"
else 
    echo "File not found"
fi

O "2 > / dev / null" suprimirá a saída para STDERR se não houver arquivos encontrados. Nós simplesmente queremos 0, ou não 0.

    
por 13.11.2014 / 04:35
0

Desculpe, tenho que corrigir acima e está funcionando bem

----------------- Script start here ------------------------- 
sfCount=ls -l /log/TestFile* | awk '{print $9}'| wc -l |sed "s/[[:blank:]]//g" | sed '/^$/d' | sed 's/\n//g' 
sFile="TestFile*"

if [ -f $IB_DIR/$sFile ] && [ $sfCount == 1 ]; then
    echo "File successfully Found"
    exit 0
else 
    echo "File Not found"
    exit 1
fi
    
por 12.11.2014 / 10:54

Tags