Fim de arquivo inesperado dentro do meu script bash [closed]

0

Eu tenho um script

#Check the disk space before backups are taken
echo "Checking Disk Space"
df -H | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read output;

echo $output
space=$(echo $output | awk '{ print $1}' | cut -d'%' -f1  )
partition=$(echo $output | awk '{ print $2 }' )
  if [ $space -ge 90 ] && ["$partition" == "/tmp"];
    then
    echo "Running out of space \"$partition ($space%)\" on ($hostname) as of "'date +%D-%l'")" | mail -s "Alert: Almost out of disk space $space%"
    exit 1
  else
   echo "Taking Backups"
    cd $mixB
#    tar command
    cd $profiles
#    mysqldump command

echo "Doing a git pull"
#    git stuff   

    echo "Finishing touches"
#    stuff
  fi

  echo "Checking if the website is up"
  function test {
  res='curl -s -I $1 | grep HTTP/1.1 | awk {'print $2'}'
    if [ $res -ne 200 ]
      then
      echo "Error $res on $1"
      exit 1
    fi
  }
  test http://www.google.com

Após a pesquisa, todas as minhas tags if / fi estão fechadas e não vi nenhum caractere especial quando fiz :set lists . Existe algo óbvio que estou perdendo? Essas parecem ser as duas maiores causas deste e

Obrigado

    
por user1210304 11.12.2015 / 18:24

1 resposta

4

É o loop while .

Você perdeu algumas palavras-chave. A sintaxe precisa ser:

while <condition>; do <work>; done 

Seu loop while começa com while read output; , então não há do .... done . Faça como:

awk .... | while read output; do
    #### Do what you want
done
    
por 11.12.2015 / 18:34

Tags