자작 명령어의 인자값으로 *.txt를 받게 하려면 어떻게 해야 할까요?
글쓴이: k1d0bus3 / 작성시간: 월, 2016/06/27 - 11:47오전
예를 들어# cat ./*.txt
라고 하면 디렉토리내의 모든 txt파일에 대해 cat이 됩니다.
하지만 제가 cat과 비슷하게 동작하는 my_cat이란 쉘스크립트를 만들었을때는# my_cat ./*.txt
이라고 하면 제대로 동작이 안됩니다. a.txt b.txt c.txt 처럼 하나하나 실행해야만 동작이 됩니다.
이때 디렉토리의 모든 txt파일에 대해 동작하게 하려면 어떻게 구현해야 할까요?
Forums:


굳이 " " 등으로 둘러싸서 와일드카드를 사용한
굳이 " " 등으로 둘러싸서 와일드카드를 사용한 경우만 아니라면
shell이 와일드카드를 해당 파일명들로 미리 확장해서 넘겨줍니다.
위의 두 번째 예에서 보이듯,
사용자 프로그램은 /usr/include/std*.h 를 넘겨받는 것이 아니고 확장된 목록을 받게 되므로
대략 아래와 같은 식으로 루프돌면서 파일 하나씩 처리해주시면 됩니다.
for(int i=1; i<argc; i++) { char fname = argv[i]; FILE *f = fopen(fname, ....); ... }