기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
아래 find문은 확장자가 cSsh or cpp or mk인 놈을 뒤져서 libpvfr 라는 문자열이 있는 놈을 찾아주는 명령입니다.
find . ( -name '*.[cSsh]' -o -name '*.cpp' -o -name '*.mk' ) -print0 | xargs -0 grep -nr "libpvfr"
이놈을 단순히 shell script로 만들어서 써보려고 아래와 같이 shell script 명령을 작성했습니다.
그런데 특별한 에러는 없는데, 결과도 안나오는군요 ㅡ_ㅡ;;;;
$cat myfine
fnameDefault="-name '*.[cSsh]' -o -name '*.cpp' -o -name '*.mk'"
find . ( $fnameDefault ) -type f -print0 | xargs -0 grep -nr "$1"
이렇게 해놓고,
$myfine
$
아무런 결과 없이 그냥 프롬프트만 나오네요..
(맨위의 find 명령문을 그대로 입력하면 조건에 맞는 결과물들이 나옴니다)
이거 가방끈이 짧다보니 시간만 겁니 죽이네요.. ㅠ_ㅠ;;;;;;;
무슨 차이가 있는걸까요???????
PS)
아래 김충헌님 가이드대로 변수를 사용하지 않으면 동작은 하는데요
스크립트를 사용하는데 변수를 사용할수 없다면 의미가 바랠거 같은데...
혹시 변수를 사용해서 처리할수는 없을까요?????
흠,,,
잘 모르겠지만,
fnameDefault 변수를 대입하지 말고,
직접 입력해 보세요..
그리고, '*.cpp' 이렇게 하는 대신 *.cpp 이런식으로 해보세요
정리하자면 아래와 같습니다.
find . ( -name *.[cSsh] -o -name *.cpp -o -name *.mk ) -type f -print0 | xargs -0 grep -nr $1
위와 같이 하면 될거 같은데요..
혹 안되면, 뭐 어쩔수 없구요... ㅡ.ㅡ;;
잘 되시길 바랍니다.