당신은 당신의 그렙에서 확장 된 정규 표현식을 사용하는
1) 꽤 이상 ...이 있습니다. 따라서
-E option
을 사용해야합니다. 대신
';'
을 인용 당신의 find 명령에서
2) 당신이 당신의 빈/bash는 디렉토리에 스크립트를 배치하기 때문에
\;
3), 반드시 해당 경로가 PATH 환경 변수에 추가되어 있는지 확인 할. 다른 방법은 스크립트가있는 전체 경로를 제공하는 것입니다.
4) if then else
루프에는 echo
문이 없습니다.
5) find 명령에서 파일을 찾으려는 경로를 제공해야합니다. 현재 디렉토리에 .
을 사용하십시오. 예 : find . -type f -exec ./script.sh {} \;
(사용자 자신의 RegEx를 추가 할 수 있음). 이것은 내가 무엇을 얻을 -
[jaypal~/Temp]$ cat script.sh
#!/bin/bash
if grep -E '[a-zA-Z]*' ${1} >/dev/null
then
echo "!!! $1 is malware!!!"
else
echo " $1 is fine."
fi
출력 :
[jaypal~/Temp]$ find . -type f -exec ./script.sh {} \;
./.mp3 is fine.
./1 is fine.
!!! ./a.sh is malware!!!
!!! ./ab.sed is malware!!!
!!! ./b.sh is malware!!!
!!! ./backup/GTP_Identifier.sh is malware!!!
!!! ./backup/GTP_Parser.sh is malware!!!
!!! ./backup/split.pl is malware!!!
!!! ./backup/T20111017153052.NEW is malware!!!
!!! ./backup/T20111025172411.NEW is malware!!!
!!! ./backup/T20111107193400.NEW is malware!!!
오 ... 첫 번째 줄은 스크립트에 갈 생각되지 않았습니다 :) – sehe
권자 그 오타이었다! – algorithmicCoder
스크립트의 전체 경로를 사용해보십시오. 예 : /home/xx/is-it-malware.sh – malletjo