나는 스크립트의 목적이 foo로 시작하는 모든 파일을 찾고 오래된 3 일간 정렬하지 않고 목록 파일의 파일 목록과 비교하는 것이 목적이다. 누락 된 파일 만 리포팅 할 수 있습니다. 내 스크립트의 문제는 누락 된 파일을 고려하지 않는다는 것입니다 (예 : ) list라는 파일에 foo1, foo2, foo3, foo4, foo5가 포함되어 있지만 하나의 파일 파일이 누락 된 경우 문자열 비교가 꺼져 있습니다. 즉, 파일 foo4 스크립트가 실행됩니다 foo5을 누락 된 경우하는 의미bash 스크립트의 문자열 비교 문제
enter
#!/bin/bash
Set –x
Find ~/test99 –name “foo*” –mtime -3 –print>report
Sort report –o report;
Cat report|cut -c 22-25>report1;
while read comp1<&3 && read comp2<&4
do
if [[ $comp1 = $comp2 ]]; then
echo "file not found" >/dev/null
else
echo "$comp1 not found"
fi
done 3<report1 4<list
비교에서 'comp2' 변수 앞에 달러 기호를 잊어 버렸습니다. if [[$ comp1 == "$ comp2"]]; then – user000001