이 if 조건에 ">"를 어떻게 포함할 수 있나요? 배쉬 스크립트

이 if 조건에 ">"를 어떻게 포함할 수 있나요? 배쉬 스크립트
 date=$(date +'%d-%m-%y')
  mkdir -p $date
  echo "Enter DB User";
  read DBUSER ;
  echo "Enter Password" ;
  read PASS ;
  echo "Enter DB Name" ;
  read DBNAME ;
  echo "Enter Dump file name with .sql"
  read DESTDUMP


if [ mysqldump -u$DBUSER -p$PASS $DBNAME > $DESTDUMP ] ; then 

mv $DESTDUMP.sql $date

rsync -RravhP $date $DESTINATION

else 

echo "DATABASE DUMP WENT WRONG. CHECK YOUR ENTRIES"

fi

"if" 문에서는 오류가 발생하므로 스크립트는 "else" 부분으로 이동합니다. "if" 문의 출력을 제공합니다.

 + [ mysqldump -uuser1 -ppass1 db1 ]
 script: 21: [: mysqldump: unexpected operator
 + echo DATABASE DUMP WENT WRONG. CHECK YOUR ENTRIES
 DATABASE DUMP WENT WRONG. CHECK YOUR ENTRIES

답변1

특정 테스트에는 대괄호( [ ... ]또는 [[ .. ]])가 사용됩니다( 참조 man test). 명령이 성공적으로 완료되었는지 확인하려는 경우(즉, 종료 코드 제공 ) 0를 사용하지 마십시오 . 간단히:

if command; then
   do_something
else
   do_something_else
fi

따라서 귀하의 경우에는 다음과 같습니다.

if mysqldump -u$DBUSER -p$PASS $DBNAME > $DESTDUMP; then 
    mv $DESTDUMP.sql $date
    rsync -RravhP $date $DESTINATION
else 
    echo "DATABASE DUMP WENT WRONG. CHECK YOUR ENTRIES"
fi

관련 정보