Почему: ошибка синтаксиса Bash рядом с неожиданным токеном `fi'

Таким образом, ошибка, которую я получаю, является синтаксической ошибкой рядом с неожиданным токеном `fi'на втором последнем'fi'. Некоторое время царапал мою голову об этом. Любая помощь очень ценится! Спасибо!

#!/bin/bash  

TFILE=/tmp/scripts/pdsh_demo.tmp  
if [ -f $TFILE ]; then  
   rm $TFILE  
fi  
/usr/bin/pdsh -R ssh -w host[0001-0200] 'command | grep -v "something"' >> $TFILE    

if [ ! -s $TFILE ]; then  
    exit  
fi  
if [ -f $TFILE ]; then  
    if grep -q "something" $TFILE ; then  
        grep -i "something" $TFILE | mailx -r "test.server" -s "Critical: something" -a $TFILE "test@test.com"  
    fi   
fi

2 ответа

вы должны сделать это:

if grep -q "something" $TFILE ; then

в это:

if [ $(grep -q "something" $TFILE) ] ; then

  1. добавьте скобки вокруг ваших аргументов
  2. пробел до и после скобок
  3. помещатьthenна новой линии

В

if grep -q "something" $TFILE ; then 

должно быть

if [ $(grep -q "something" $TFILE) ]; then  
Другие вопросы по тегам