Imprime os valores dos arquivos

0

Eu tenho dois arquivos $ TMP_RPT_FILE e $ TMP_RPT_FILE1. Em $ TMP_RPT_FILE - As leituras do medidor vêm e $ TMP_RPT_FILE1 - Id do medidor vem. Eu quero, se algum dado vier em algum desses arquivos, ele deve ser impresso. Eu tentei dessa maneira, mas não está funcionando. Alguém pode me ajudar com isso?

if [ -s "$TMP_RPT_FILE" || -s "$TMP_RPT_FILE1" ]
then

        if  [ -s "$TMP_RPT_FILE" ] 
        then
        print "Meters with READINGS ONLY for $RPT_DT" > $RPT_FILE
    cat $TMP_RPT_FILE | uniq >> $RPT_FILE
        fi

        if [ -s "$TMP_RPT_FILE1" ]
        then
        print "Meters with id for $RPT_DT" > $RPT_FILE
        cat $TMP_RPT_FILE1 | uniq >> $RPT_FILE
        fi
    cat $RPT_FILE | \
    $MAILCMD -s "$HOST: Meters with READINGS Only and No Profile Data for $RPT_DT" $MAILLIST
fi
    
por Pooja 29.07.2015 / 14:32

1 resposta

1

Você não pode usar um operador de shell || dentro da construção test ( [ ... ] ).

Use -o

if [ -s "$TMP_RPT_FILE" -o -s "$TMP_RPT_FILE1" ]

ou dividido em 2 testes.

if [ -s "$TMP_RPT_FILE" ] || [ -s "$TMP_RPT_FILE1" ]
    
por 29.07.2015 / 23:34