쉘스크립트 질문좀 드리겠습니다.
글쓴이: amblance / 작성시간: 목, 2009/06/18 - 11:53오전
안녕하세요.
쉘스크립트를 코딩하다가 질문이 있어서 이렇게 글을 올립니다.
일단 코드는 다음과 같습니다.
while getopts "a:m:g:" OPTION
do
case $OPTION in
a)
ftp -n -i $OPTARG << End-Of-Session <------
user $Username $Password
binary
mget *
bye
End-Of-Session <-------
exit 0
;;
...
esac
done
이런식으로 ftp를 이용해서 파일을 받아오는 스크립트를 작성하려고 합니다.
그런데 화살표로 표시된 부분이 실행이 안되고 있습니다.
케이스문 바깥에 있을때는 실행이 되지만, 케이스문 안에 있을때는 실행이 되지가 않습니다.
``를 써도 결과는 마찬가지더군요... 가르침좀 주시면 감사하겠습니다.
한가지 더 여쭤보겠습니다.
-a는 전체파일 복사 -m은 특정한 파일 확장자 복사 -g는 단일 파일 복사로 구현하려 합니다.
나머지부분은 다 똑같고 mget * 이부분만 달라질것 같은데 어떻게 함수를 사용해야 하나요?
감사합니다.
Forums:
음...
화살표도 스크립트에 포함되어 있는 건 아니겠지요?
해당 스크립트는 별다른 문제 없이 정상적으로 동작합니다.
sh 에 -x 옵션을 주어서 디버깅을 해보심이 좋을 것 같네요.
테스트 한 스크립트입니다.
옵션에 따라 내용이 달라져야 한다면, while 문에서는 파일명 또는 주소값을 parsing 하고..
while 문 끝난 후에 ftp 를 수행하면 될 것 같네요.
되면 한다! / 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 』
정말 좋은
정말 좋은 말씀감사합니다.
화살표는 스크립트에 포함되어있지 않습니다. :)
한가지 더 질문좀 드릴께요. 위스크립트에서 ipaddr로 인자를 하나 주었는데요,
디렉토리까지 인자를 주려면 아래처럼 해주면 되나요?
a)
Directory=$OPTARG
file=\*
ipaddr=$OPTARG
;;
B(Birth) C(Choice) D(Death)
인생은 주어지는 것이 아니고 선택하는 대로 되는 것이다.
B(Birth) C(Choice) D(Death)
인생은 주어지는 것이 아니고 선택하는 대로 되는 것이다.
음..
아시다시피 getopt 에서 "a:m:g:" 라고 주어진 것은...
-a, -m, -g 옵션에 반드시 하나의 argument 가 와야 한다는 뜻입니다.
getopt 에서 옵션을 parsing 한 경우에는 OPTARG 에 그 하나의 arguement 가 저장되는데..
위 내용은 a, m, g 세 개의 옵션이 모두 ip_address 를 arguemtn 로 받음을 뜻합니다.
만약 directory 를 추가로 받으시려면..
새로 옵션을 추가해서, directory 변수에 OPTARG 를 저장하셔야 합니다.
이 경우라면..
와 같은 식으로 추가하시면 될 것 같고, 아래와 같이 실행하시면 되겠네요.
$ ./script.sh -d dirname -a ip_addr
되면 한다! / 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 』
정말 큰 도움
정말 큰 도움 되었습니다.
감사합니다.
B(Birth) C(Choice) D(Death)
인생은 주어지는 것이 아니고 선택하는 대로 되는 것이다.
B(Birth) C(Choice) D(Death)
인생은 주어지는 것이 아니고 선택하는 대로 되는 것이다.
댓글 달기