쉘스크립트 사용중 함수 내 쉘 명령어 사용에 대해 질문이 있습니다.
글쓴이: morolty / 작성시간: 월, 2013/07/29 - 10:49오전
안녕하세요. 제목과 같이, 쉘스크립트 사용중, 함수 내에서 ftp 혹은 sed 등의 명령어 사용을 하고싶습니다.
예를들어 약간의 슈도코드를 섞어서,
#!/bin/bash function F_FTP_CONN(){ local CONN_HOST= local CONN_USERID= local CONN_PASSWD= while read line; do if [ condition ]; then CONN_HOST=echo $line | sed "s/HOST=//" elif [ condition ]; then CONN_USERID=echo $line | sed "s/USERID=//" else CONN_PASSWD=echo $line | sed "s/PASSWD=//" fi done < "./ftp.conf" ftp -in $CONN_HOST << EOF" ... }
이런 함수가 있습니다.
여기서, sed 명령어와 ftp 스크립트 부분이 제대로 동작을 안하는것 같습니다..
제가 원하는 의도는,
1. $line의 결과 값을 sed 명령어를 적용하여 CONN_HOST 등에 집어넣고 싶고
2. ftp 스크립트를 사용하고 싶습니다. (ftp -in $CONN_HOST << EOF 부분에서 << EOF를 쓰면 밑부분이 죄다 마치 문자열처럼 빨간색으로 바뀝니다.
사용하는 양식이 잘못된거 같은데 구글링을 열심히 해도 잘 안나오네요...)
스크립트 부분에서 제가 잘못 한게 있는건지, 아니면 원래 함수 내에서 명령어 사용이 안되는건지 궁금합니다.
귀하신 시간 내어 읽어주셔서 감사합니다.
Forums:
수정이 안되네요
EOF 뒤에 " 는 오타입니다..
음 ..
명령이 수행되고 나서 출력되는 문자열을 변수에 집어 넣으려면 `` (back qoute) 로 감싸 주어야 합니다.
bash 에서는 다음과 같이 $() 로 감싸주어도 됩니다.
만약 문자열이 A=B 와 같은 형태라면 eval 로 간단히 처리할 수 있습니다.
끝으로 Here Document 로 검색해 보세요.
http://en.wikipedia.org/wiki/Here_document
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
에고 늦었네요 감사합니다 !
저도 주위 아는분들한테 막 물어봐서 ``로 감싸는거에 대해 듣고 ftp 스크립트 부분을 해결했습니다!
너무 기뻐서 다음코드 포팅하느라 여길 안들어와버렸군요.. 달아주신 댓글 감사합니다!
댓글 달기