Bash 스크립트 - 찾기 및 While 루프가 작동하지 않습니다.

Bash 스크립트 - 찾기 및 While 루프가 작동하지 않습니다.

이 bash 스크립트가 있지만 "찾기" 지점에서는 작동하지 않는 것 같습니다.

#!/bin/bash
echo 'What date YYYY-MM-DD format?'

read date

echo "starting restore script..."
echo "Looking in /root/backups/dbback_$date/"

cd "/root/backups/dbback_$date/"

echo 'What search term for files?'

read search

echo 'What database am I restoring too?'

read database

count=`ls -l | grep "$search" | wc -l`
echo "$count files found containing $search"

find "/root/backups/dbback_$date/" -type f -name '$search*.sql.gz' -not -path '*livefiles*' | while read file; do
echo "$file is being restored"
gunzip < "$file" | mysql -u root -p* '$database';
echo "$file has been restored...moving on to next file."
done

발견과 완료 사이 - 아무 일도 일어나지 않으며 내가 받은 마지막 에코는 다음과 같습니다.

테스트가 포함된 파일 9개 발견

내가 뭔가 잘못하고 있다면 누구든지 제안할 수 있나요?

답변1

find "/root/backups/dbback_$date/" -type f -name "${search}*.sql.gz" -not -path '*livefiles*' | while IFS= read -r file; do
echo "${file} is being restored"
gunzip < "${file}" | mysql -u root -p* $database;
echo "${file} has been restored...moving on to next file."
done

지금 유효함

관련 정보