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" ]
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
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" ]
Tags test shell-script