내 bash 스크립트에서 예기치 않은 파일 끝이 발생했습니다.

내 bash 스크립트에서 예기치 않은 파일 끝이 발생했습니다.

스크립트가 있습니다

#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

검색 후 모든 if/fi 태그가 꺼져 있고 검색할 때 특수 문자가 표시되지 않는 것 같습니다 :set lists. 나는 분명한 것을 놓치고 있습니까? 이 두 가지가 가장 큰 이유인 것 같습니다.

감사해요

답변1

이것은 while주기입니다.

몇 가지 키워드를 놓쳤습니다. 구문은 다음과 같아야 합니다.

while <condition>; do <work>; done 

주기 while가 시작 while read output;되고 끝납니다 do .... done. 그것을 만드십시오:

awk .... | while read output; do
    #### Do what you want
done

관련 정보