기초적인 쉘스크립트/리다이렉션 질문
글쓴이: knightflow / 작성시간: 월, 2012/04/23 - 10:54오전
전문 프로그래머는 아니고, 연구용으로 그때그때 간단하게 스크립트 하나씩 만들어보고 있습니다.
그 와중에,
특정 파일 내에 여러 줄의 문자를 삽입하는 스크립트를 짤려고 하는데
잘 모르겠네요..
a.dat 라는 파일이 있으면 이 안에 '추가'로
abcd
efgh
ijkl
이런 식으로 넣어주려고 합니다.
고수님들 조언 부탁합니다.
Forums:
cat >> a.dat
골뱅이가 내용에 필요하면 다른 기호나 EOF 같은 단어로 쓰셔도 됩니다.
이렇게 해봤는데...
#!/bin/bash
for file in `find . -maxdepth 1 -name "mmcm_lt??_??_uni_????.f90" | cut -f 1 -d .`
do
echo $file
cat >> Makefile << END
$file : $file.o $(LIBDIR)/libhealpix.a
$(FC) $(FFLAGS) -o $@.exe $@.o $(LDFLAGS)
END
done
----------------------------------------------------------
위와 같이 했는데 for 문이 제대로 안닫히고, END가 그냥 텍스트로 인식되는 것 같군요.
어떻게 고쳐줘야될까요..ㅜㅜ
음 ..
$(FC) 와 같이 Makefile 용 변수들은 $ 가 그대로 들어가야 할테니..
\$(FC) 처럼 $ 를 \$ 로 바꿔주세요.
\$(FC) 앞에는 탭 하나 넣어주시구요.
그 외에는 별다른 문제는 없어 보이네요.
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
감사합니다.
원래 echo부터 탭을 하나씩 넣어서 for 문 안에 있다는 걸 구별할려고 했는데
그걸 없애니 for문도 제대로 닫히고, END도 제대로 먹히네요.
감사합니다.
음 ..
아.. 왜 문법 에러가 나나.. 싶었는데.. 그거였군요.
다른 부분은 상관 없는데, here-document 의 close doc tag 는 앞에 공백이 없어야 합니다.
그리고 here-document 안의 문장들은 실제 파일에 공백 포함해서 그대로 들어가니까..
적당히 indent 조절하시면 되구요.
here-document 밖의 내용들 echo 같은 애들은 원래 하시려던 대로 탭 넣어주셔도 됩니다.
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
음 ..
테스트 해 본 코드입니다.
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
거듭 감사.ㅎㅎ
상세한 답변 감사해요~
댓글 달기