두줄짜리 아주 단순한 스크립트 문의
글쓴이: wizardis / 작성시간: 화, 2010/05/11 - 3:10오후
아래 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 명령을 작성했습니다. (bash)
그런데 특별한 에러는 없는데, 결과도 안나오는군요 ㅡ_ㅡ;;;;
$cat myfine
fnameDefault="-name '*.[cSsh]' -o -name '*.cpp' -o -name '*.mk'"
find . \( $fnameDefault \) -type f -print0 | xargs -0 grep -nr "$1"
이렇게 해놓고,
$myfine
$
아무런 결과 없이 그냥 프롬프트만 나오네요..
(그냥 find 명령문을 그대로 입력하면 조건에 맞는 결과물들이 나옴니다)
이거 가방끈이 짧다보니 시간만 겁니 죽이네요.. ㅠ_ㅠ;;;;;;;
무슨 차이가 있는걸까요???????
Forums:
음
$./myfile
또는
파일 첫줄에
#!/bin/sh
추가후에
$./myfile 해보세요
=================================
이제는 앞만 보며 전진해야만 할뿐.......
BLOG : http://khmirage.tistory.com/
==================================================================
정체된 일상.... 계기를 만들어야 하는데........
BLOG : http://khmirage.tistory.com/
넵, 추가로요~
네 답변 감사합니다.
사실 sh -v myfile 이런식으로 디버깅 할때 보니깐 동작하더라고요,..
그럼 이게 bash에서는 동작안되고 sh에서는 동작하는 셈인가요??
두 shell의 특성이 다른건가요?
그런 것과 상관없이
그런 것과 상관없이 첫 줄에 #!/bin/(ba)sh 줄이 없으면 쉘 스크립트로 실행되지 않지요. 이른바 shebang이라고 하는데...
http://en.wikipedia.org/wiki/Shebang_(Unix)
댓글 달기